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 .