]> Cypherpunks repositories - gostls13.git/commitdiff
gc: fix func syntax error
authorRuss Cox <rsc@golang.org>
Thu, 14 Apr 2011 02:48:21 +0000 (22:48 -0400)
committerRuss Cox <rsc@golang.org>
Thu, 14 Apr 2011 02:48:21 +0000 (22:48 -0400)
Fixes #1685.

R=ken2
CC=golang-dev
https://golang.org/cl/4414042

src/cmd/gc/go.y
test/func6.go [new file with mode: 0644]

index ba2b2a6343c9b87d4e02d22a160328c529f74f15..89899ae1e9fcb8c37664cc7f5526b5707047abac 100644 (file)
@@ -1239,9 +1239,10 @@ fnlitdcl:
        }
 
 fnliteral:
-       fnlitdcl '{' stmt_list '}'
+       fnlitdcl lbrace stmt_list '}'
        {
                $$ = closurebody($3);
+               fixlbrace($2);
        }
 
 
diff --git a/test/func6.go b/test/func6.go
new file mode 100644 (file)
index 0000000..1356b6a
--- /dev/null
@@ -0,0 +1,14 @@
+// $G $D/$F.go
+
+// Copyright 2011 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
+
+func main() {
+       if func() bool { return true }() {}  // 6g used to say this was a syntax error
+       if (func() bool { return true })() {}
+       if (func() bool { return true }()) {}
+}
+