mirror of
https://github.com/golang/go
synced 2024-11-12 07:40:23 -07:00
50 lines
672 B
Go
50 lines
672 B
Go
|
// $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);
|
||
|
}
|
||
|
|
||
|
}
|