]> Cypherpunks.ru repositories - gostls13.git/commitdiff
spec: document that trailing comma is valid after index in index expressions
authorRobert Griesemer <gri@golang.org>
Tue, 22 Nov 2022 00:02:20 +0000 (16:02 -0800)
committerGopher Robot <gobot@golang.org>
Wed, 23 Nov 2022 00:25:08 +0000 (00:25 +0000)
At parse time we don't know if a[i] is an index expression or a
type (or function) instantiation. Because instantiations accept
a list of type arguments, and argument lists permit a trailing
comma, a[i,] is either an instantiation or index expression.

Document that a trailing comma is permitted in the syntax for
index expressions.

For comparison, the same problem arises with conversions which
cannot be distinguished from function calls at parse time. The
spec also permits a trailing comma for conversions T(x,). The
grammar adjustment is the same (see line 5239).

Fixes #55007.

Change-Id: Ib9101efe52031589eb95a428cc6dff940d939f9e
Reviewed-on: https://go-review.googlesource.com/c/go/+/452618
Reviewed-by: Ian Lance Taylor <iant@google.com>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
TryBot-Result: Gopher Robot <gobot@golang.org>
Run-TryBot: Robert Griesemer <gri@google.com>
Auto-Submit: Robert Griesemer <gri@google.com>

doc/go_spec.html

index 3dcab9c4a6e5181326124f6219665956d5f99bed..630012ded898d1c6dd7f55c532d6ded981615230 100644 (file)
@@ -1,6 +1,6 @@
 <!--{
        "Title": "The Go Programming Language Specification",
-       "Subtitle": "Version of November 10, 2022",
+       "Subtitle": "Version of November 21, 2022",
        "Path": "/ref/spec"
 }-->
 
@@ -3305,7 +3305,7 @@ PrimaryExpr =
        PrimaryExpr Arguments .
 
 Selector       = "." identifier .
-Index          = "[" Expression "]" .
+Index          = "[" Expression [ "," ] "]" .
 Slice          = "[" [ Expression ] ":" [ Expression ] "]" |
                  "[" [ Expression ] ":" Expression ":" Expression "]" .
 TypeAssertion  = "." "(" Type ")" .