From 753ad5e1d59db9073abba07627723fa3267a52fd Mon Sep 17 00:00:00 2001 From: Robert Griesemer Date: Mon, 21 Nov 2022 16:02:20 -0800 Subject: [PATCH] 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 Reviewed-by: Matthew Dempsky Reviewed-by: Robert Griesemer TryBot-Result: Gopher Robot Run-TryBot: Robert Griesemer Auto-Submit: Robert Griesemer --- doc/go_spec.html | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/go_spec.html b/doc/go_spec.html index 3dcab9c4a6..630012ded8 100644 --- a/doc/go_spec.html +++ b/doc/go_spec.html @@ -1,6 +1,6 @@ @@ -3305,7 +3305,7 @@ PrimaryExpr = PrimaryExpr Arguments . Selector = "." identifier . -Index = "[" Expression "]" . +Index = "[" Expression [ "," ] "]" . Slice = "[" [ Expression ] ":" [ Expression ] "]" | "[" [ Expression ] ":" Expression ":" Expression "]" . TypeAssertion = "." "(" Type ")" . -- 2.50.0