modernc.org/gc@v1.0.1-0.20240304020402-f0dba7c97c2b/testdata/errchk/test/fixedbugs/bug346.go (about) 1 // run 2 3 // Copyright 2011 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 import "os" 10 11 func main() { 12 // Test unclosed closure. 13 { 14 x := 4 15 a, b, c, d := func(i int) (p int, q int, r int, s int) { return 1, i, 3, x }(2) 16 17 if a != 1 || b != 2 || c != 3 || d != 4 { 18 println("1# abcd: expected 1 2 3 4 got", a, b, c, d) 19 os.Exit(1) 20 } 21 } 22 // Test real closure. 23 { 24 x := 4 25 gf = func(i int) (p int, q int, r int, s int) { return 1, i, 3, x } 26 27 a, b, c, d := gf(2) 28 29 if a != 1 || b != 2 || c != 3 || d != 4 { 30 println("2# abcd: expected 1 2 3 4 got", a, b, c, d) 31 os.Exit(1) 32 } 33 } 34 } 35 36 var gf func(int) (int, int, int, int)