]> Cypherpunks repositories - gostls13.git/commit
go/types, types2: initial support for parameterized type aliases
authorRobert Griesemer <gri@golang.org>
Tue, 27 Feb 2024 00:45:28 +0000 (16:45 -0800)
committerRobert Griesemer <gri@google.com>
Wed, 28 Feb 2024 02:54:10 +0000 (02:54 +0000)
commit1a6498e1cb8d68c747a926efb3749625e135e6df
tree43f298aa2f4adc850a27d499c1526e311423a326
parent5e3c4016a436c357a57a6f7870913c6911c6904e
go/types, types2: initial support for parameterized type aliases

Permit type parameters on type alias declarations depending on
Go language version.

Implement various version checks such that at most one version
error is reported per type alias declaration.

Add tparams field to Alias type node.

Missing:
        - instantiation of alias types
        - API additions (requires proposal)

For #46477.

Change-Id: Ica658292bd096d3bceb513027d3353501a6c58e4
Reviewed-on: https://go-review.googlesource.com/c/go/+/566856
Auto-Submit: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Griesemer <gri@google.com>
Reviewed-by: Robert Findley <rfindley@google.com>
LUCI-TryBot-Result: Go LUCI <golang-scoped@luci-project-accounts.iam.gserviceaccount.com>
14 files changed:
src/cmd/compile/internal/types2/alias.go
src/cmd/compile/internal/types2/check_test.go
src/cmd/compile/internal/types2/decl.go
src/cmd/compile/internal/types2/resolver.go
src/cmd/go/testdata/script/mod_edit_go.txt
src/go/types/alias.go
src/go/types/decl.go
src/go/types/resolver.go
src/internal/types/testdata/check/go1_8.go
src/internal/types/testdata/check/typeinst0.go
src/internal/types/testdata/spec/typeAliases1.22.go [new file with mode: 0644]
src/internal/types/testdata/spec/typeAliases1.23a.go [new file with mode: 0644]
src/internal/types/testdata/spec/typeAliases1.23b.go [new file with mode: 0644]
src/internal/types/testdata/spec/typeAliases1.8.go [new file with mode: 0644]