diff options
author | Robert Griesemer <gri@golang.org> | 2013-07-29 13:52:15 -0700 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2013-07-29 13:52:15 -0700 |
commit | 1f9e82401421a347100fa72ccc211a6215c38028 (patch) | |
tree | 14726c0da3036b04478344af7df2a97ebeb5546a | |
parent | 20b149f874dccf81185a18e38cb8de032e9b2118 (diff) | |
download | go-1f9e82401421a347100fa72ccc211a6215c38028.tar.gz |
go/parser: selectors may be method expressions
R=adonovan
CC=golang-dev
https://codereview.appspot.com/12062043
-rw-r--r-- | src/pkg/go/parser/parser.go | 2 | ||||
-rw-r--r-- | src/pkg/go/parser/short_test.go | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go index 42a1c5e57..a0ac8d713 100644 --- a/src/pkg/go/parser/parser.go +++ b/src/pkg/go/parser/parser.go @@ -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: diff --git a/src/pkg/go/parser/short_test.go b/src/pkg/go/parser/short_test.go index a581319e0..0ef0c560c 100644 --- a/src/pkg/go/parser/short_test.go +++ b/src/pkg/go/parser/short_test.go @@ -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) { |