]> Cypherpunks.ru repositories - gostls13.git/commit
[dev.typeparams] cmd/compile/internal/syntax: always use IndexExpr node for type...
authorRobert Griesemer <gri@golang.org>
Wed, 14 Oct 2020 05:33:17 +0000 (22:33 -0700)
committerRobert Griesemer <gri@golang.org>
Wed, 14 Oct 2020 21:37:37 +0000 (21:37 +0000)
commit73f529845c91818c58f26994099db17c8ee2b2f3
tree5ce5467ee357cc70725e665ad6966c494b1480fd
parent48755e06aa2ed6ec977efc6df976bcc375a2e6f2
[dev.typeparams] cmd/compile/internal/syntax: always use IndexExpr node for type instantiation

Per @mdempsky's suggestion: Instead of representing a type instantiation T[P]
by an IndexExpr node, and a type instantiation with multiple type arguments
T[P1, P2] by a CallExpr node with special Brackets flag, always use an IndexExpr.
Use a ListExpr as index in the (less common) case of multiple type arguments.

This removes the need for the CallExpr.Brackets field and cleans up the parser
code around type instantiations.

Backport of syntax package changes from https://golang.org/cl/262020.

Change-Id: I32e8bc4eafac5b3ef2e7eb40fa8c790a5a905b69
Reviewed-on: https://go-review.googlesource.com/c/go/+/262137
Trust: Robert Griesemer <gri@golang.org>
Reviewed-by: Matthew Dempsky <mdempsky@google.com>
src/cmd/compile/internal/syntax/nodes.go
src/cmd/compile/internal/syntax/parser.go
src/cmd/compile/internal/syntax/parser_test.go