]> Cypherpunks repositories - gostls13.git/commitdiff
- don't allow empty decl lists (e.g. const ())
authorRobert Griesemer <gri@golang.org>
Wed, 8 Oct 2008 01:30:08 +0000 (18:30 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 8 Oct 2008 01:30:08 +0000 (18:30 -0700)
R=r
OCL=16698
CL=16698

usr/gri/pretty/parser.go

index b0ce43c940a15b7d20e1d2b4dc44f41ce792f92b..fde763595f7b0996ecbfd4f243ef1d37588a2c71 100644 (file)
@@ -373,16 +373,10 @@ func (P *Parser) ParseResult() *AST.List {
 func (P *Parser) ParseFunctionType() *AST.FunctionType {
        P.Trace("FunctionType");
        
-       P.OpenScope();
-       P.level--;
-
        typ := new(AST.FunctionType);
        typ.pos = P.pos;
        typ.params = P.ParseParameters();
        typ.result = P.ParseResult();
-
-       P.level++;
-       P.CloseScope();
        
        P.Ecart();
        return typ;
@@ -1341,6 +1335,8 @@ func (P *Parser) ParseDecl(exported bool, keyword int) *AST.Declaration {
        P.Expect(keyword);
        if P.tok == Scanner.LPAREN {
                P.Next();
+               decl.decls.Add(P.ParseSpec(exported, keyword));
+               P.OptSemicolon(Scanner.RPAREN);
                for P.tok != Scanner.RPAREN {
                        decl.decls.Add(P.ParseSpec(exported, keyword));
                        P.OptSemicolon(Scanner.RPAREN);
@@ -1418,7 +1414,9 @@ func (P *Parser) ParseExportDecl() {
        }
        for P.tok == Scanner.IDENT {
                ident := P.ParseIdent();
-               P.Optional(Scanner.COMMA);  // TODO this seems wrong
+               if P.tok == Scanner.COMMA {
+                       P.Next();  // TODO this seems wrong
+               }
        }
        if has_paren {
                P.Expect(Scanner.RPAREN)