| // $G $D/$F.go && $L $F.$A && ./$A.out | |
| // 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 main | |
| import _ "fmt" | |
| var call string | |
| type T struct { | |
| _, _, _ int | |
| } | |
| func (T) _() { | |
| } | |
| func (T) _() { | |
| } | |
| const ( | |
| c0 = iota | |
| _ | |
| _ | |
| _ | |
| c4 | |
| ) | |
| var ints = []string{ | |
| "1", | |
| "2", | |
| "3", | |
| } | |
| func f() (int, int) { | |
| call += "f" | |
| return 1, 2 | |
| } | |
| func g() (float64, float64) { | |
| call += "g" | |
| return 3, 4 | |
| } | |
| func h(_ int, _ float64) { | |
| } | |
| func i() int { | |
| call += "i" | |
| return 23 | |
| } | |
| var _ = i() | |
| func main() { | |
| if call != "i" { | |
| panic("init did not run") | |
| } | |
| call = "" | |
| _, _ = f() | |
| a, _ := f() | |
| if a != 1 { | |
| panic(a) | |
| } | |
| b, _ := g() | |
| if b != 3 { | |
| panic(b) | |
| } | |
| _, a = f() | |
| if a != 2 { | |
| panic(a) | |
| } | |
| _, b = g() | |
| if b != 4 { | |
| panic(b) | |
| } | |
| _ = i() | |
| if call != "ffgfgi" { | |
| panic(call) | |
| } | |
| if c4 != 4 { | |
| panic(c4) | |
| } | |
| out := "" | |
| for _, s := range ints { | |
| out += s | |
| } | |
| if out != "123" { | |
| panic(out) | |
| } | |
| sum := 0 | |
| for s := range ints { | |
| sum += s | |
| } | |
| if sum != 3 { | |
| panic(sum) | |
| } | |
| h(a, b) | |
| } | |
| // useless but legal | |
| var _ int = 1 | |
| var _ = 2 | |
| var _, _ = 3, 4 | |
| const _ = 3 | |
| const _, _ = 4, 5 | |
| type _ int | |
| func _() { | |
| panic("oops") | |
| } | |
| func ff() { | |
| var _ int = 1 | |
| } |