aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/syntax
diff options
context:
space:
mode:
authorgriesemer <gri@golang.org>2017-10-16 21:24:27 -0700
committerRobert Griesemer <gri@golang.org>2017-10-17 16:59:59 +0000
commitc37090f00f57b38b4c8b93b1d5e97f5a10cb1765 (patch)
treef49fe076e899963dc52a68b481a68eed3ab56647 /src/cmd/compile/internal/syntax
parent47193dcc0c91a6e1a2d6f58d55b123fa626c19d6 (diff)
downloadgo-c37090f00f57b38b4c8b93b1d5e97f5a10cb1765.tar.xz
cmd/compile/internal/parser: use same logic for stmtList as for other lists (cleanup)
Change-Id: I2c2571b33603f0fd0ba5a79400da7b845d246b8c Reviewed-on: https://go-review.googlesource.com/71290 Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Diffstat (limited to 'src/cmd/compile/internal/syntax')
-rw-r--r--src/cmd/compile/internal/syntax/parser.go11
1 files changed, 4 insertions, 7 deletions
diff --git a/src/cmd/compile/internal/syntax/parser.go b/src/cmd/compile/internal/syntax/parser.go
index e2d5817dc8..312ccec64e 100644
--- a/src/cmd/compile/internal/syntax/parser.go
+++ b/src/cmd/compile/internal/syntax/parser.go
@@ -2063,14 +2063,11 @@ func (p *parser) stmtList() (l []Stmt) {
break
}
l = append(l, s)
- // customized version of osemi:
- // ';' is optional before a closing ')' or '}'
- if p.tok == _Rparen || p.tok == _Rbrace {
- continue
- }
- if !p.got(_Semi) {
+ // ";" is optional before "}"
+ if !p.got(_Semi) && p.tok != _Rbrace {
p.syntax_error("at end of statement")
- p.advance(_Semi, _Rbrace)
+ p.advance(_Semi, _Rbrace, _Case, _Default)
+ p.got(_Semi) // avoid spurious empty statement
}
}
return