]> Cypherpunks repositories - gostls13.git/commitdiff
- minor tweak to composite literal production:
authorRobert Griesemer <gri@golang.org>
Fri, 27 Mar 2009 20:43:28 +0000 (13:43 -0700)
committerRobert Griesemer <gri@golang.org>
Fri, 27 Mar 2009 20:43:28 +0000 (13:43 -0700)
renamed PairExpr -> KeyValueExpr and PairExprList -> KeyValueList
(to match corresponding nodes in AST per rsc' suggestion)

- added a couple of TODOs

R=r,rsc
DELTA=10  (2 added, 0 deleted, 8 changed)
OCL=26837
CL=26840

doc/go_spec.html

index ad98b8355afb95bff416b76105f66d5e45d37560..e90f605605859ab5736158289689fd2c5e87bf80 100644 (file)
@@ -25,7 +25,9 @@ Todo's:
 [ ] fix "else" part of if statement
 [ ] cleanup: 6g allows: interface { f F } where F is a function type.
        fine, but then we should also allow: func f F {}, where F is a function type.
-
+[ ] decide if and what to write about evaluation order of tuple assignments
+[ ] decide if and what to write about evaluation order of composite literal
+    elements (single expressions, (key:value) pairs)
 
 Wish list:
 [ ] enum facility (enum symbols that are not mixable with ints) or some other
@@ -1885,15 +1887,15 @@ Composite literals construct values for structs, arrays, slices, and maps
 and create a new value each time they are evaluated.
 They consist of the type of the value
 followed by a brace-bound list of expressions,
-or a list of expression pairs for map literals.
+or a list of key-value pairs for map literals.
 </p>
 
 <pre class="grammar">
-CompositeLit  = LiteralType "{" [ ( ExpressionList | ExprPairList ) [ "," ] ] "}" .
+CompositeLit  = LiteralType "{" [ ( ExpressionList | KeyValueList ) [ "," ] ] "}" .
 LiteralType   = StructType | ArrayType | "[" "..." "]" ElementType |
                 SliceType | MapType | TypeName .
-ExprPairList  = ExprPair { "," ExprPair } .
-ExprPair      = Expression ":" Expression .
+KeyValueList  = KeyValueExpr { "," KeyValueExpr } .
+KeyValueExpr  = Expression ":" Expression .
 </pre>
 
 <p>