diff options
author | Robert Griesemer <gri@golang.org> | 2017-02-22 13:43:23 -0800 |
---|---|---|
committer | Robert Griesemer <gri@golang.org> | 2017-02-24 18:54:36 +0000 |
commit | f8ae30c4a201dbdb6652cbb72cd51762863c7447 (patch) | |
tree | 9fcddc62fe6d6b5fb9b2c688c9d57569b693fa7c /test/syntax | |
parent | 2fa09a20e56eb27f7cec635be42fc3137c091085 (diff) | |
download | go-f8ae30c4a201dbdb6652cbb72cd51762863c7447.tar.gz go-f8ae30c4a201dbdb6652cbb72cd51762863c7447.zip |
cmd/compile/internal/parser: improved a couple of error messages
The new syntax tree introduced with 1.8 represents send statements
(ch <- x) as statements; the old syntax tree represented them as
expressions (and parsed them as such) but complained if they were
used in expression context. As a consequence, some of the errors
that in the past were of the form "ch <- x used as value" now look
like "unexpected <- ..." because a "<-" is not valid according to
Go syntax in those situations. Accept the new error message.
Also: Fine-tune handling of misformed for loop headers.
Also: Minor cleanups/better comments.
Fixes #17590.
Change-Id: Ia541dea1f2f015c1b21f5b3ae44aacdec60a8aba
Reviewed-on: https://go-review.googlesource.com/37386
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'test/syntax')
-rw-r--r-- | test/syntax/chan1.go | 4 | ||||
-rw-r--r-- | test/syntax/semi4.go | 9 |
2 files changed, 4 insertions, 9 deletions
diff --git a/test/syntax/chan1.go b/test/syntax/chan1.go index a33a0d4cea..4eb63796ac 100644 --- a/test/syntax/chan1.go +++ b/test/syntax/chan1.go @@ -10,8 +10,8 @@ var c chan int var v int func main() { - if c <- v { // ERROR "used as value|missing condition|invalid condition" + if c <- v { // ERROR "used as value" } } -var _ = c <- v // ERROR "used as value|unexpected <-" +var _ = c <- v // ERROR "unexpected <-" diff --git a/test/syntax/semi4.go b/test/syntax/semi4.go index 0b5e677680..f21431b3f5 100644 --- a/test/syntax/semi4.go +++ b/test/syntax/semi4.go @@ -4,14 +4,9 @@ // Use of this source code is governed by a BSD-style // license that can be found in the LICENSE file. -// TODO(mdempsky): Update error expectations for new parser. -// The new parser emits an extra "missing { after for clause" error. -// The old parser is supposed to emit this too, but it panics first -// due to a nil pointer dereference. - package main func main() { for x // GCCGO_ERROR "undefined" - { // ERROR "expecting .*{.* after for clause|missing operand" - z // ERROR "undefined|expecting { after for clause" + { // ERROR "unexpected {, expecting for loop condition" + z |