From e3162d43ab3160e8839973ae30e9551a8a53d94e Mon Sep 17 00:00:00 2001 From: Russ Cox Date: Tue, 8 Sep 2009 23:16:19 -0700 Subject: write-only variable _ R=ken OCL=34465 CL=34470 --- test/blank.go | 90 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 90 insertions(+) create mode 100644 test/blank.go (limited to 'test/blank.go') 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; +} -- cgit v1.2.1