]> Cypherpunks repositories - gostls13.git/commitdiff
tweak grammar and associated prose to permit things like x.y in range clauses.
authorRob Pike <r@golang.org>
Thu, 16 Apr 2009 03:51:17 +0000 (20:51 -0700)
committerRob Pike <r@golang.org>
Thu, 16 Apr 2009 03:51:17 +0000 (20:51 -0700)
R=rsc
DELTA=5  (3 added, 0 deleted, 2 changed)
OCL=27536
CL=27540

doc/go_spec.html

index 9d8d2b4e01bef7787c678e5f43e76d81afca21a6..e788050b1cbf9b821efe675d0642986fb624e8c8 100644 (file)
@@ -3452,7 +3452,7 @@ of iteration variables - and then executes the block.
 </p>
 
 <pre class="grammar">
-RangeClause = IdentifierList ( "=" | ":=" ) "range" Expression .
+RangeClause = ExpressionList ( "=" | ":=" ) "range" Expression .
 </pre>
 
 <p>
@@ -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;
 or it may be a channel.
 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,
 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