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