aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2010-07-29 10:54:03 -0700
committerRobert Griesemer <gri@golang.org>2010-07-29 10:54:03 -0700
commit7734ad517905167451446042fb5954cf4936c8e9 (patch)
tree61d9090eadcb0eeccbfd562cfeec67d46a50c4a8
parent2c0bbf99b94a96b27eff2bcdaab406500ebd1366 (diff)
downloadgo-7734ad517905167451446042fb5954cf4936c8e9.tar.gz
go-7734ad517905167451446042fb5954cf4936c8e9.zip
bug299: parenthesized receiver types/anonymous fields are illegal
R=r CC=golang-dev https://golang.org/cl/1846051
-rw-r--r--test/bugs/bug299.go27
-rw-r--r--test/golden.out9
2 files changed, 36 insertions, 0 deletions
diff --git a/test/bugs/bug299.go b/test/bugs/bug299.go
new file mode 100644
index 0000000000..d455540c65
--- /dev/null
+++ b/test/bugs/bug299.go
@@ -0,0 +1,27 @@
+// errchk $G $D/$F.go
+
+// Copyright 2010 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
+
+type T struct {
+ // accepted by both compilers, legal according to spec
+ x int
+ y (int)
+ int
+ *float
+ // not accepted by both compilers, not legal according to spec
+ (complex) // ERROR "non-declaration|expected"
+ (*string) // ERROR "non-declaration|expected"
+ *(bool) // ERROR "non-declaration|expected"
+}
+
+// accepted by both compilers, legal according to spec
+func (p T) m() {}
+
+// accepted by 6g, not accepted by gccgo, not legal according to spec
+func (p (T)) f() {} // ERROR "expected"
+func (p *(T)) g() {} // ERROR "expected"
+func (p (*T)) h() {} // ERROR "expected"
diff --git a/test/golden.out b/test/golden.out
index 49bca4b874..25dbc914bb 100644
--- a/test/golden.out
+++ b/test/golden.out
@@ -177,3 +177,12 @@ panic PC=xxx
=========== bugs/bug260.go
FAIL
BUG: bug260 failed
+
+=========== bugs/bug299.go
+BUG: errchk: bugs/bug299.go:25: missing expected error: 'expected'
+errchk: bugs/bug299.go:26: missing expected error: 'expected'
+errchk: bugs/bug299.go:27: missing expected error: 'expected'
+errchk: bugs/bug299.go: unmatched error messages:
+==================================================
+bugs/bug299.go:19: syntax error: unexpected }
+==================================================