| // $G $D/$F.go && $L $F.$A && ./$A.out || echo BUG: bug196 |
| |
| // 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 |
| |
| var m = map[int]int{ 0: 0, 1: 0 } |
| var nf = 0 |
| var i int |
| |
| func multi() (int, int) { |
| return 1,2 |
| } |
| |
| func xxx() { |
| var c chan int; |
| x, ok := <-c; |
| |
| var m map[int]int; |
| x, ok = m[1]; |
| |
| var i interface{}; |
| var xx int; |
| xx, ok = i.(int); |
| |
| a,b := multi(); |
| |
| _, _, _, _, _ = x, ok, xx, a, b; |
| } |
| |
| func f() map[int]int { |
| nf++; |
| return m; |
| } |
| |
| func g() *int { |
| nf++; |
| return &i |
| } |
| |
| func main() { |
| f()[0]++; |
| f()[1] += 2; |
| *g() %= 2; |
| if nf != 3 { |
| panicln("too many calls:", nf); |
| } |
| |
| } |