• Robert Griesemer's avatar
    spec: permit parentheses around builtin function names · ccc713c7
    Robert Griesemer authored
    Not a language change.
    
    This is simply documenting the status quo which permits
    builtin function names to be parenthesized in calls; e.g.,
    both
    
            len(s)
    and
            (((len)))(s)
    
    are accepted by all compilers and go/types.
    
    Changed the grammar by merging the details of BuiltinCall
    with ordinary Calls. Also renamed the Call production to
    Arguments which more clearly identifies that part of the
    grammar and also matches better with its counterpart on
    the declaration side (Parameters).
    
    The fact that the first argument can be a type (for builtins)
    or cannot be a type (for regular function calls) is expressed
    in the prose, no need to make the grammar more complicated.
    
    Fixes #9001.
    
    LGTM=iant, r, rsc
    R=r, rsc, iant, ken, dave
    CC=golang-codereviews
    https://golang.org/cl/160570043
    ccc713c7
go_spec.html 190 KB