| // run | |
| // Copyright 2010 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. | |
| // Test case for https://golang.org/issue/692 | |
| package main | |
| var fooCount = 0 | |
| var barCount = 0 | |
| var balCount = 0 | |
| func foo() (int, int) { | |
| fooCount++ | |
| return 0, 0 | |
| } | |
| func bar() (int, int) { | |
| barCount++ | |
| return 0, 0 | |
| } | |
| func bal() (int, int) { | |
| balCount++ | |
| return 0, 0 | |
| } | |
| var a, b = foo() // foo is called once | |
| var c, _ = bar() // bar is called twice | |
| var _, _ = bal() // bal is called twice | |
| func main() { | |
| if fooCount != 1 { | |
| panic("fooCount != 1") | |
| } | |
| if barCount != 1 { | |
| panic("barCount != 1") | |
| } | |
| if balCount != 1 { | |
| panic("balCount != 1") | |
| } | |
| } |