aboutsummaryrefslogtreecommitdiff
path: root/test/syntax
diff options
context:
space:
mode:
authorRobert Griesemer <gri@golang.org>2017-02-22 13:43:23 -0800
committerRobert Griesemer <gri@golang.org>2017-02-24 18:54:36 +0000
commitf8ae30c4a201dbdb6652cbb72cd51762863c7447 (patch)
tree9fcddc62fe6d6b5fb9b2c688c9d57569b693fa7c /test/syntax
parent2fa09a20e56eb27f7cec635be42fc3137c091085 (diff)
downloadgo-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.go4
-rw-r--r--test/syntax/semi4.go9
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