// compile

// 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 bug219

func f(func()) int { return 0 }

// this doesn't work:
// bug219.go:16: syntax error near if
func g1() {
	if x := f(func() {
		if true {}
	}); true {
		_ = x;
	}
}

// this works
func g2() {
	if x := f(func() {
		//if true {}
	}); true {
		_ = x;
	}
}

// this works
func g3() {
	x := f(func() {
		if true {}
	});
	if true {
		_ = x;
	}
}
