mirror of
https://github.com/golang/go
synced 2024-10-14 11:53:56 +00:00
spec: document that trailing comma is valid after index in index expressions
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>
This commit is contained in:
parent
1fbfc2f6eb
commit
753ad5e1d5
|
@ -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 ")" .
|
||||
|
|
Loading…
Reference in a new issue