]> Cypherpunks repositories - gostls13.git/commitdiff
Correct expression level for argument lists.
authorRobert Griesemer <gri@golang.org>
Sun, 29 Nov 2009 22:11:52 +0000 (14:11 -0800)
committerRobert Griesemer <gri@golang.org>
Sun, 29 Nov 2009 22:11:52 +0000 (14:11 -0800)
Fixes #352.

R=rsc
https://golang.org/cl/161073

src/pkg/go/parser/parser.go
src/pkg/go/parser/parser_test.go

index 8af1b801e05376296830d064624fb67a91cb4a1a..65b275fc88cbe4ae5bb0f59d488c054edd22b505 100644 (file)
@@ -992,10 +992,12 @@ func (p *parser) parseCallOrConversion(fun ast.Expr) *ast.CallExpr {
        }
 
        lparen := p.expect(token.LPAREN);
+       p.exprLev++;
        var args []ast.Expr;
        if p.tok != token.RPAREN {
                args = p.parseExprList()
        }
+       p.exprLev--;
        rparen := p.expect(token.RPAREN);
 
        return &ast.CallExpr{fun, lparen, args, rparen};
index 10a750c59e8d2b5122089950d87b95cbc2777d9c..2aa1d436660a01429ed3dd0444cbdb8d53ae6057 100644 (file)
@@ -31,6 +31,7 @@ func TestParseIllegalInputs(t *testing.T) {
 var validPrograms = []interface{}{
        `package main`,
        `package main import "fmt" func main() { fmt.Println("Hello, World!") }`,
+       `package main func main() { if f(T{}) {} }`,
 }