Descriptionspec: clarify index and selector expressions
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 issue 4913.
Fixes issue 5951.
Patch Set 1 #Patch Set 2 : diff -r b9ee7a3df1c9 https://code.google.com/p/go #Patch Set 3 : diff -r b9ee7a3df1c9 https://code.google.com/p/go #Patch Set 4 : diff -r b9ee7a3df1c9 https://code.google.com/p/go #Patch Set 5 : diff -r b9ee7a3df1c9 https://code.google.com/p/go #Patch Set 6 : diff -r 0d2637acc3bc https://code.google.com/p/go #Patch Set 7 : diff -r f04c9f103e15 https://code.google.com/p/go #
Total comments: 6
Patch Set 8 : diff -r 38097c493d8a https://code.google.com/p/go #Patch Set 9 : diff -r 38097c493d8a https://code.google.com/p/go #
Total comments: 2
MessagesTotal messages: 9
|