]> Cypherpunks repositories - gostls13.git/commitdiff
spec: be more explicit about equivalence of empty string and absent field tags
authorRobert Griesemer <gri@golang.org>
Fri, 22 Apr 2016 23:35:29 +0000 (16:35 -0700)
committerRobert Griesemer <gri@golang.org>
Mon, 25 Apr 2016 19:21:40 +0000 (19:21 +0000)
Note that the spec already makes that point with a comment in the very first
example for struct field tags. This change is simply stating this explicitly
in the actual spec prose.

- gccgo and go/types already follow this rule
- the current reflect package API doesn't distinguish between absent tags
  and empty tags (i.e., there is no discoverable difference)

Fixes #15412.

Change-Id: I92f9c283064137b4c8651630cee0343720717a02
Reviewed-on: https://go-review.googlesource.com/22391
Reviewed-by: Russ Cox <rsc@golang.org>
Reviewed-by: Rob Pike <r@golang.org>
doc/go_spec.html

index e9f6476a8921a7b007154507ebe826ffcd23c7f4..13dae09420eb04f9d524c2de0047bb7654449fca 100644 (file)
@@ -1,6 +1,6 @@
 <!--{
        "Title": "The Go Programming Language Specification",
-       "Subtitle": "Version of April 21, 2016",
+       "Subtitle": "Version of April 25, 2016",
        "Path": "/ref/spec"
 }-->
 
@@ -1043,8 +1043,8 @@ promoted methods are included in the method set of the struct as follows:
 <p>
 A field declaration may be followed by an optional string literal <i>tag</i>,
 which becomes an attribute for all the fields in the corresponding
-field declaration. The tags are made
-visible through a <a href="/pkg/reflect/#StructTag">reflection interface</a>
+field declaration. An empty tag string is equivalent to an absent tag.
+The tags are made visible through a <a href="/pkg/reflect/#StructTag">reflection interface</a>
 and take part in <a href="#Type_identity">type identity</a> for structs
 but are otherwise ignored.
 </p>