From 4712165b17d9366b026bd54649f6d6110d6ebc91 Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Thu, 23 Oct 2008 17:19:56 -0700 Subject: [PATCH] - clarified that composites are values created every time they are evaluated, removed corresponding TODO. R=r DELTA=5 (3 added, 1 deleted, 1 changed) OCL=17746 CL=17751 --- doc/go_spec.txt | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/doc/go_spec.txt b/doc/go_spec.txt index 585cfbf73a..1e57b67a12 100644 --- a/doc/go_spec.txt +++ b/doc/go_spec.txt @@ -59,7 +59,6 @@ Open issues: [ ] semantics of statements [ ] need for type switch? (or use type guard with ok in tuple assignment?) [ ] do we need anything on package vs file names? -[ ] Do composite literals create a new literal each time (gri thinks yes) [ ] type switch or some form of type test needed [ ] what is the meaning of typeof() [ ] at the moment: type T S; strips any methods of S. It probably shouldn't. @@ -91,6 +90,8 @@ Decisions in need of integration into the doc: Closed: +[x] Do composite literals create a new literal each time (gri thinks yes) (Russ is putting in a change + to this effect, essentially) [x] comparison operators: can we compare interfaces? [x] can we add methods to types defined in another package? (probably not) [x] optional semicolons: too complicated and unclear @@ -1479,7 +1480,8 @@ or a list of expression pairs for map literals. If LiteralType is a TypeName, the denoted type must be an array, map, or structure. The types of the expressions must match the respective key, element, and field types of the literal type; there is no automatic type conversion. -Composite literals are values of the type specified by LiteralType; to get +Composite literals are values of the type specified by LiteralType; that is +a new value is created every time the literal is evaluated. To get a pointer to the literal, the address operator "&" must be used. Implementation restriction: Currently, map literals are pointers to maps. -- 2.50.0