Report syntax error that was missed when moving to new parser.
Fixes #19610.
Change-Id: Ie5625f907a84089dc56fcccfd4f24df546042783
Reviewed-on: https://go-review.googlesource.com/38375
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Run-TryBot: Matthew Dempsky <mdempsky@google.com>
TryBot-Result: Gobot Gobot <gobot@golang.org>
p.want(_Semi)
if p.tok != _Lbrace {
post = p.simpleStmt(nil, false)
+ if a, _ := post.(*AssignStmt); a != nil && a.Op == Def {
+ p.syntax_error_at(a.Pos(), "cannot declare in post statement of for loop")
+ }
}
} else if p.tok != _Lbrace {
condStmt = p.simpleStmt(nil, false)
--- /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() {
+ for ; ; x := 1 { // ERROR "cannot declare in post statement"
+ _ = x
+ break
+ }
+}