diff options
author | Russ Cox <rsc@golang.org> | 2009-09-08 23:16:19 -0700 |
---|---|---|
committer | Russ Cox <rsc@golang.org> | 2009-09-08 23:16:19 -0700 |
commit | e3162d43ab3160e8839973ae30e9551a8a53d94e (patch) | |
tree | 0f20804536fa92dac12c670ce2cee30b636a406e /test | |
parent | 2c9c757b0c64aac68a8930e6043e9c0086dc433b (diff) | |
download | go-e3162d43ab3160e8839973ae30e9551a8a53d94e.tar.gz |
write-only variable _
R=ken
OCL=34465
CL=34470
Diffstat (limited to 'test')
-rw-r--r-- | test/blank.go | 90 | ||||
-rw-r--r-- | test/blank1.go | 12 | ||||
-rw-r--r-- | test/fixedbugs/bug154.go | 2 |
3 files changed, 103 insertions, 1 deletions
diff --git a/test/blank.go b/test/blank.go new file mode 100644 index 000000000..4919841a4 --- /dev/null +++ b/test/blank.go @@ -0,0 +1,90 @@ +// $G $D/$F.go && $L $F.$A && ./$A.out + +// 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 call string + +type T struct { + _, _, _ int; +} + +const ( + c0 = iota; + _; + _; + _; + c4; +) + +var ints = []string { + "1", + "2", + "3" +} + +func f() (int, int) { + call += "f"; + return 1,2 +} + +func g() (float, float) { + call += "g"; + return 3,4 +} + +func h(_ int, _ float) { +} + +func i() int { + call += "i"; + return 23; +} + +func main() +{ + _, _ = f(); + a, _ := f(); + if a != 1 {panic(a)} + b, _ := g(); + if b != 3 {panic(b)} + _, a = f(); + if a != 2 {panic(a)} + _, b = g(); + if b != 4 {panic(b)} + _ = i(); + if call != "ffgfgi" {panic(call)} + if c4 != 4 {panic(c4)} + + out := ""; + for _, s := range ints { + out += s; + } + if out != "123" {panic(out)} + + sum := 0; + for s, _ := range ints { + sum += s; + } + if sum != 3 {panic(sum)} + + h(a,b); +} + +// useless but legal +var _ int = 1; +var _ = 2; +var _, _ = 3, 4; +const _ = 3; +const _, _ = 4, 5; +type _ int; +func _() { + panic("oops") +} + +func ff() { + var _ int = 1; +} diff --git a/test/blank1.go b/test/blank1.go new file mode 100644 index 000000000..2fa6e9f8f --- /dev/null +++ b/test/blank1.go @@ -0,0 +1,12 @@ +// errchk $G -e $D/$F.go + +// 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 _ // ERROR "invalid package name _" + +func main() { + _(); // ERROR "cannot use _ as value" + x := _+1; // ERROR "cannot use _ as value" +} diff --git a/test/fixedbugs/bug154.go b/test/fixedbugs/bug154.go index 60bcb8e50..66f7212b5 100644 --- a/test/fixedbugs/bug154.go +++ b/test/fixedbugs/bug154.go @@ -16,7 +16,7 @@ func f0() string { func f1() string { const f = 3.141592; - _ := float64(float32(f)); // appears to change the precision of f + x := float64(float32(f)); // appears to change the precision of f return fmt.Sprintf("%v", float64(f)); } |