// $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(); } 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); } }