]> Cypherpunks repositories - gostls13.git/commitdiff
cmd/compile/internal/parser: removed TODO (cleanup)
authorgriesemer <gri@golang.org>
Tue, 17 Oct 2017 04:52:34 +0000 (21:52 -0700)
committerRobert Griesemer <gri@golang.org>
Tue, 17 Oct 2017 17:00:15 +0000 (17:00 +0000)
When an opening "{" of a block is missing and after advancing we
find a closing "}", it's likely better to assume the end of the
block. Fixed and removed TODO.

Change-Id: I20c9b4ecca798933a7cd4cbf21185bd4ca04f5f7
Reviewed-on: https://go-review.googlesource.com/71291
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/syntax/parser.go

index 312ccec64e07734d9570e7baa93730502a89d102..8e47d8e723c1fed4eee6c50019633ee861578678 100644 (file)
@@ -1689,10 +1689,14 @@ func (p *parser) blockStmt(context string) *BlockStmt {
        s := new(BlockStmt)
        s.pos = p.pos()
 
+       // people coming from C may forget that braces are mandatory in Go
        if !p.got(_Lbrace) {
                p.syntax_error("expecting { after " + context)
                p.advance(_Name, _Rbrace)
-               // TODO(gri) may be better to return here than to continue (#19663)
+               s.Rbrace = p.pos() // in case we found "}"
+               if p.got(_Rbrace) {
+                       return s
+               }
        }
 
        s.List = p.stmtList()