]> Cypherpunks repositories - gostls13.git/commitdiff
go/parser: selectors may be method expressions
authorRobert Griesemer <gri@golang.org>
Mon, 29 Jul 2013 20:52:15 +0000 (13:52 -0700)
committerRobert Griesemer <gri@golang.org>
Mon, 29 Jul 2013 20:52:15 +0000 (13:52 -0700)
R=adonovan
CC=golang-dev
https://golang.org/cl/12062043

src/pkg/go/parser/parser.go
src/pkg/go/parser/short_test.go

index 42a1c5e57c31efe755b39887437190f6a8ae15fa..a0ac8d7131757efaa7c444c5782ad20b5572220c 100644 (file)
@@ -1408,7 +1408,7 @@ L:
                        }
                        switch p.tok {
                        case token.IDENT:
-                               x = p.parseSelector(p.checkExpr(x))
+                               x = p.parseSelector(p.checkExprOrType(x))
                        case token.LPAREN:
                                x = p.parseTypeAssertion(p.checkExpr(x))
                        default:
index a581319e05cd5ea973e4d2f441ba2b6d11405cb1..0ef0c560c4a50d95be87d4c7d2012959c74dd04e 100644 (file)
@@ -34,6 +34,7 @@ var valids = []string{
        `package p; func f() { switch ; {} };`,
        `package p; func f() { for _ = range "foo" + "bar" {} };`,
        `package p; func f() { var s []int; g(s[:], s[i:], s[:j], s[i:j], s[i:j:k], s[:j:k]) };`,
+       `package p; var ( _ = (struct {*T}).m; _ = (interface {T}).m )`,
 }
 
 func TestValid(t *testing.T) {