Commit b340879c authored by Rob Pike's avatar Rob Pike

tweak grammar and associated prose to permit things like x.y in range clauses.

R=rsc
DELTA=5  (3 added, 0 deleted, 2 changed)
OCL=27536
CL=27540
parent 7aee71bd
...@@ -3452,7 +3452,7 @@ of iteration variables - and then executes the block. ...@@ -3452,7 +3452,7 @@ of iteration variables - and then executes the block.
</p> </p>
<pre class="grammar"> <pre class="grammar">
RangeClause = IdentifierList ( "=" | ":=" ) "range" Expression . RangeClause = ExpressionList ( "=" | ":=" ) "range" Expression .
</pre> </pre>
<p> <p>
...@@ -3460,7 +3460,10 @@ The type of the right-hand expression in the "range" clause must be an ...@@ -3460,7 +3460,10 @@ The type of the right-hand expression in the "range" clause must be an
array, slice, string or map, or a pointer to an array, slice, string or map; array, slice, string or map, or a pointer to an array, slice, string or map;
or it may be a channel. or it may be a channel.
Except for channels, Except for channels,
the identifier list must contain one or two identifiers denoting the the identifier list must contain one or two expressions
(as in assignments, these must be a
variable, pointer indirection, field selector, or index expression)
denoting the
iteration variables. On each iteration, iteration variables. On each iteration,
the first variable is set to the string, array or slice index or the first variable is set to the string, array or slice index or
map key, and the second variable, if present, is set to the corresponding map key, and the second variable, if present, is set to the corresponding
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment