Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code | Sign in
(296)

Issue 12198043: code review 12198043: spec: clarify index and selector expressions (Closed)

Can't Edit
Can't Publish+Mail
Start Review
Created:
11 years, 7 months ago by gri
Modified:
11 years, 7 months ago
Reviewers:
r, rsc
CC:
r, rsc, iant, ken2, golang-dev
Visibility:
Public.

Description

spec: clarify index and selector expressions (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 issue 4913. Fixes issue 5951.

Patch Set 1 #

Patch Set 2 : diff -r 43f967f62292 https://code.google.com/p/go #

Patch Set 3 : diff -r 43f967f62292 https://code.google.com/p/go #

Patch Set 4 : diff -r 1c3ab40c0715 https://code.google.com/p/go #

Unified diffs Side-by-side diffs Delta from patch set Stats (+43 lines, -31 lines) Patch
M doc/go_spec.html View 1 2 3 8 chunks +43 lines, -31 lines 0 comments Download

Messages

Total messages: 4
gri
Hello r@golang.org, rsc@golang.org, iant@golang.org, ken@golang.org (cc: golang-dev@googlegroups.com), I'd like you to review this change to ...
11 years, 7 months ago (2013-07-31 21:23:26 UTC) #1
r
LGTM it feels repetitive but i don't have a better suggestion
11 years, 7 months ago (2013-08-01 00:53:18 UTC) #2
rsc
LGTM
11 years, 7 months ago (2013-08-01 05:18:31 UTC) #3
gri
11 years, 7 months ago (2013-08-01 05:25:52 UTC) #4
*** Submitted as https://code.google.com/p/go/source/detail?r=f70981e60e17 ***

spec: clarify index and selector expressions

(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 issue 4913.
Fixes issue 5951.

R=r, rsc, iant, ken
CC=golang-dev
https://codereview.appspot.com/12198043
Sign in to reply to this message.

Powered by Google App Engine
RSS Feeds Recent Issues | This issue
This is Rietveld f62528b