From 82accf44bffcb4834c6ec794596fc8b335f99c2b Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Wed, 9 Jan 2013 11:31:57 -0800 Subject: [PATCH] go/parser: better error message for declaration error Fixes #4616. R=rsc CC=golang-dev https://golang.org/cl/7069049 --- src/pkg/go/parser/parser.go | 2 +- src/pkg/go/parser/short_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) 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) { -- 2.48.1