Starting the error message with "expecting" rather than "missing"
causes the syntax error mechanism to add additional helpful info
(it recognizes "expecting" but not "missing").
Fixes #17328.
Change-Id: I8482ca5e5a6a6b22e0ed0d831b7328e264156334
Reviewed-on: https://go-review.googlesource.com/36637
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
}
if !p.got(_Lbrace) {
- p.syntax_error("missing { after " + context)
+ p.syntax_error("expecting { after " + context)
p.advance(_Name, _Rbrace)
}
--- /dev/null
+// errorcheck
+
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+func main() {
+ i := 0
+ for ; ; i++) { // ERROR "unexpected \), expecting { after for clause"
+ }
+}
package main
func main() {
- if x; y // ERROR "missing .*{.* after if clause|undefined"
+ if x; y // ERROR "expected .*{.* after if clause|undefined"
{
z // GCCGO_ERROR "undefined"
package main
func main() {
- for x; y; z // ERROR "missing .*{.* after for clause|undefined"
+ for x; y; z // ERROR "expected .*{.* after for clause|undefined"
{
z // GCCGO_ERROR "undefined"
func main() {
for x // GCCGO_ERROR "undefined"
- { // ERROR "missing .*{.* after for clause|missing operand"
- z // ERROR "undefined|missing { after for clause"
+ { // ERROR "expecting .*{.* after for clause|missing operand"
+ z // ERROR "undefined|expecting { after for clause"