From: Robert Griesemer Date: Fri, 27 Mar 2009 20:43:28 +0000 (-0700) Subject: - minor tweak to composite literal production: X-Git-Tag: weekly.2009-11-06~1951 X-Git-Url: http://www.git.cypherpunks.su/?a=commitdiff_plain;h=c5c577c1ff19f7398c9c97755d6cfdbe73df53b6;p=gostls13.git - minor tweak to composite literal production: 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 --- diff --git a/doc/go_spec.html b/doc/go_spec.html index ad98b8355a..e90f605605 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -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.

-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 .