diff options
| author | griesemer <gri@golang.org> | 2017-10-16 17:17:40 -0700 |
|---|---|---|
| committer | Robert Griesemer <gri@golang.org> | 2017-10-17 01:04:56 +0000 |
| commit | 0b2cb89196967030ae005076f0166ad7d6024083 (patch) | |
| tree | c7f00d761381282ed66e125cf9fe0fcd99d1d9b6 /src/cmd/compile/internal/syntax/parser.go | |
| parent | 38a3c2cfe95cef0e4f101cfb82c5586a9db4cbd8 (diff) | |
| download | go-0b2cb89196967030ae005076f0166ad7d6024083.tar.xz | |
cmd/compile/internal/syntax: better recovery after missing closing parentheses
Fine-tune skipping of tokens after missing closing parentheses in lists.
Fixes #22164.
Change-Id: I575d86e21048cd40340a2c08399e8b0deec337cf
Reviewed-on: https://go-review.googlesource.com/71250
Run-TryBot: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/syntax/parser.go')
| -rw-r--r-- | src/cmd/compile/internal/syntax/parser.go | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go index cda2cf42da..3d14b70eba 100644 --- a/src/cmd/compile/internal/syntax/parser.go +++ b/src/cmd/compile/internal/syntax/parser.go @@ -377,8 +377,10 @@ func (p *parser) list(open, sep, close token, f func() bool) src.Pos { // to the expected close token only default: p.syntax_error(fmt.Sprintf("expecting %s or %s", tokstring(sep), tokstring(close))) - p.advance(close) - done = true + p.advance(_Rparen, _Rbrack, _Rbrace) + if p.tok != close { + return p.pos() + } } } |
