• Robert Griesemer's avatar
    spec: clarify index and selector expressions · 2961d229
    Robert Griesemer authored
    (Replacement for CL 11884043.)
    
    1) Explain a[i] and a[i:j] where a is of type *A as
       shortcut for (*a)[i] and (*a)[i:j], respectively.
    
    2) Together with 1), because len() of nil slices is
       well defined, there's no need to special case nil
       operands anymore.
    
    3) The result of indexing or slicing a constant string
       is always a non-constant byte or string value.
    
    4) The result of slicing an untyped string is a value
       of type string.
    
    5) If the operand of a valid slice a[i:j] is nil (i, j
       must be 0 for it to be valid - this already follows
       from the in-range rules), the result is a nil slice.
    
    Fixes #4913.
    Fixes #5951.
    
    R=r, rsc, iant, ken
    CC=golang-dev
    https://golang.org/cl/12198043
    2961d229
Name
Last commit
Last update
api Loading commit data...
doc Loading commit data...
include Loading commit data...
lib Loading commit data...
misc 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...
PATENTS Loading commit data...
README Loading commit data...
favicon.ico Loading commit data...
robots.txt Loading commit data...