1 // compile 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 bug219 8 9 func f(func()) int { return 0 } 10 11 // this doesn't work: 12 // bug219.go:16: syntax error near if 13 func g1() { 14 if x := f(func() { 15 if true {} 16 }); true { 17 _ = x; 18 } 19 } 20 21 // this works 22 func g2() { 23 if x := f(func() { 24 //if true {} 25 }); true { 26 _ = x; 27 } 28 } 29 30 // this works 31 func g3() { 32 x := f(func() { 33 if true {} 34 }); 35 if true { 36 _ = x; 37 } 38 } 39