|  | // 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") | 
|  | } | 
|  | } |