| 12
 3
 4
 5
 6
 7
 8
 9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 
 | // run
// Copyright 2009 The Go Authors.  All rights reserved.
// Use of this source code is governed by a BSD-style
// license that can be found in the LICENSE file.
package main
var gen = 'a'
func f(n int) string {
	s := string(gen) + string(n+'A'-1)
	gen++
	return s
}
func g(x, y string) string { return x + y }
var v1 = f(1) + f(2)
var v2 = g(f(3), f(4))
var v3 = f(5) + f(6) + f(7) + f(8) + f(9)
func main() {
	gen = 'a'
	if v1 != "aAbB" {
		panic("BUG: bug236a")
	}
	if v2 != "cCdD" {
		panic("BUG: bug236b")
	}
	if v3 != "eEfFgGhHiI" {
		panic("BUG: bug236c")
	}
	switch "aAbB" {
	case f(1) + f(2):
	default:
		panic("BUG: bug236d")
	}
	switch "cCdD" {
	case g(f(3), f(4)):
	default:
		panic("BUG: bug236e")
	}
	switch "eEfFgGhHiI" {
	case f(5) + f(6) + f(7) + f(8) + f(9):
	default:
		panic("BUG: bug236f")
	}
}
 |