]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/parser: use same logic for stmtList as for other lists (cleanup)
authorgriesemer <gri@golang.org>
Tue, 17 Oct 2017 04:24:27 +0000 (21:24 -0700)
committerRobert Griesemer <gri@golang.org>
Tue, 17 Oct 2017 16:59:59 +0000 (16:59 +0000)
Change-Id: I2c2571b33603f0fd0ba5a79400da7b845d246b8c
Reviewed-on: https://go-review.googlesource.com/71290
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/syntax/parser.go

index e2d5817dc8642d588daa6b7254894f32dd261fcd..312ccec64e07734d9570e7baa93730502a89d102 100644 (file)
@@ -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