• Robert Griesemer's avatar
    go_spec: don't allow parens around the literal type of composite literals · 07cc6440
    Robert Griesemer authored
    Background: The current spec is imprecise with respect to the parsing ambiguity
    for composite literals: It says that the ambiguity arises when the TypeName form
    of the LiteralType is used. The following code:
    
        if (B) {} ...
    
    is not using the TypeName form (but the parenthesized TypeName form) and thus
    could be interpreted as:
    
        if ((B){}) ...
    
    instead of
    
        if B {} ...
    
    Both compilers and gofmt choose the latter interpretation. One could fix the
    spec by making the clause regarding the parsing ambiguity more precise ("...using
    the _possibly parenthesized_ TypeName form of the LiteralType..."). The alternative
    (chosen here) is to simply disallow parenthesized literal types. Except for a single
    test case (test/parentype.go) there appears to be no Go code under $GOROOT containing
    parenthesized literal types. Furthermore, parentheses are never needed around a
    literal type for correct parsing.
    
    R=golang-dev
    CC=golang-dev
    https://golang.org/cl/1913041
    07cc6440
Name
Last commit
Last update
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc Loading commit data...
pkg Loading commit data...
src Loading commit data...
test Loading commit data...
.hgignore Loading commit data...
.hgtags Loading commit data...
AUTHORS Loading commit data...
CONTRIBUTORS Loading commit data...
LICENSE Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...