From: Robert Griesemer Date: Wed, 9 Jan 2013 19:31:57 +0000 (-0800) Subject: go/parser: better error message for declaration error X-Git-Tag: go1.1rc2~1441 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=82accf44bffcb4834c6ec794596fc8b335f99c2b;p=gostls13.git go/parser: better error message for declaration error Fixes #4616. R=rsc CC=golang-dev https://golang.org/cl/7069049 --- diff --git a/src/pkg/go/parser/parser.go b/src/pkg/go/parser/parser.go index cf94e00653..959af38720 100644 --- a/src/pkg/go/parser/parser.go +++ b/src/pkg/go/parser/parser.go @@ -149,7 +149,7 @@ func (p *parser) shortVarDecl(decl *ast.AssignStmt, list []ast.Expr) { } } } else { - p.errorExpected(x.Pos(), "identifier") + p.errorExpected(x.Pos(), "identifier on left side of :=") } } if n == 0 && p.mode&DeclarationErrors != 0 { diff --git a/src/pkg/go/parser/short_test.go b/src/pkg/go/parser/short_test.go index daba853088..c62f7e0506 100644 --- a/src/pkg/go/parser/short_test.go +++ b/src/pkg/go/parser/short_test.go @@ -70,6 +70,7 @@ var invalids = []string{ `package p; func f() { select { case _ <- chan /* ERROR "expected expression" */ int: } };`, `package p; func f() { _ = (<-<- /* ERROR "expected 'chan'" */ chan int)(nil) };`, `package p; func f() { _ = (<-chan<-chan<-chan<-chan<-chan<- /* ERROR "expected channel type" */ int)(nil) };`, + `package p; func f() { var t []int; t /* ERROR "expected identifier on left side of :=" */ [0] := 0 };`, } func TestInvalid(t *testing.T) {