Source file test/fixedbugs/issue17640.go

     1  // run
     2  
     3  // Copyright 2016 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 "fmt"
    10  
    11  var results string
    12  
    13  type TwoInts struct {
    14  	x, y int
    15  }
    16  
    17  func f(x int) int { results = results + fmt.Sprintf("_%d", x); return x }
    18  
    19  func main() {
    20  	_ = [19]int{1: f(1), 0: f(0), 2: f(2), 6, 7}
    21  	_ = [2]int{1: f(4), 0: f(3)}
    22  	_ = TwoInts{y: f(6), x: f(5)}
    23  	_ = map[int]int{f(f(9) + 1): f(8), 0: f(7), f(22): -1}
    24  	if results != "_1_0_2_4_3_6_5_9_10_8_7_22" {
    25  		fmt.Printf("unexpected: %s\n", results)
    26  		panic("fail")
    27  	}
    28  }
    29  

View as plain text