Source file test/fixedbugs/bug346.go

     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)
    37  

View as plain text