]> Cypherpunks repositories - gostls13.git/commit
go/parser: fix parsing of array or slice constraint types
authorRobert Findley <rfindley@google.com>
Wed, 27 Oct 2021 13:19:50 +0000 (09:19 -0400)
committerRobert Findley <rfindley@google.com>
Thu, 28 Oct 2021 15:32:59 +0000 (15:32 +0000)
commita5a423e0e809e451b06771eb6a7b95cc9255f9fd
treee877a2ceb90433eea6ce77ae5ac08b14e1752166
parent5c98bcb7d43e1dcf60d3799afc30f4d56e5e3cc4
go/parser: fix parsing of array or slice constraint types

Now that we allow eliding 'interface' from constraint types, we need to
be a bit more careful about not consuming a '[' when parsing the next
expression after "type T [". We want to check if the next expression is
an identifier not followed by ']', in which case we're in a generic
type, but need to avoid parsing index or slice expressions. Such
expressions aren't valid array lengths because these expressions are
never constant, so when encountering a following '[' we can instead
assume that this is a type parameter field with array or slice type
constraint.

Test cases are added for the related issues #49174 and #49175, along
with a flag to enable tracing error tests.

For #49174
For #49175

Change-Id: I0476ef20c4c134ac537118272f20caaf123ee70e
Reviewed-on: https://go-review.googlesource.com/c/go/+/359134
Trust: Robert Findley <rfindley@google.com>
Run-TryBot: Robert Findley <rfindley@google.com>
TryBot-Result: Go Bot <gobot@golang.org>
Reviewed-by: Robert Griesemer <gri@golang.org>
src/go/parser/error_test.go
src/go/parser/parser.go
src/go/parser/testdata/issue49174.go2 [new file with mode: 0644]
src/go/parser/testdata/issue49175.go2 [new file with mode: 0644]