mirror of
https://github.com/golang/go
synced 2024-11-14 14:50:23 -07:00
a15648658f
R=ken OCL=35905 CL=35905
52 lines
707 B
Go
52 lines
707 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();
|
|
|
|
_, _, _, _, _ = 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);
|
|
}
|
|
|
|
}
|