aboutsummaryrefslogtreecommitdiff
path: root/src/cmd/compile/internal/types2/testdata
diff options
context:
space:
mode:
authorRob Findley <rfindley@google.com>2021-07-21 12:12:22 -0400
committerRobert Findley <rfindley@google.com>2021-07-28 19:15:09 +0000
commit473e493d18c277d69e40a4930af045d474ff2be4 (patch)
tree38f5d91931d924e17229c82d4152d61dc5b292a4 /src/cmd/compile/internal/types2/testdata
parente00a6ec084605b773cdb87971de5b5536c0cc13e (diff)
downloadgo-473e493d18c277d69e40a4930af045d474ff2be4.tar.gz
go-473e493d18c277d69e40a4930af045d474ff2be4.zip
[dev.typeparams] cmd/compile/internal/types2: merge instance and Named to eliminate sanitization
This is a port of CL 335929 to types2. It differs significantly from that CL to handle lazy loading, which wasn't tested in go/types. Additionally, the *Checker field was moved out of instance and back onto Named. This way we can tell whether a Named type is uninstantiated simply by checking whether Named.instance is non-nil, which simplified the code considerably. Fixes #46151 Change-Id: I617263bcfaa768ac5442213cecad8d567c2749fc Reviewed-on: https://go-review.googlesource.com/c/go/+/336252 Trust: Robert Findley <rfindley@google.com> Trust: Robert Griesemer <gri@golang.org> Run-TryBot: Robert Findley <rfindley@google.com> TryBot-Result: Go Bot <gobot@golang.org> Reviewed-by: Robert Griesemer <gri@golang.org>
Diffstat (limited to 'src/cmd/compile/internal/types2/testdata')
-rw-r--r--src/cmd/compile/internal/types2/testdata/check/issues.go24
1 files changed, 3 insertions, 1 deletions
diff --git a/src/cmd/compile/internal/types2/testdata/check/issues.go2 b/src/cmd/compile/internal/types2/testdata/check/issues.go2
index 1ede383ebe..e29357de0b 100644
--- a/src/cmd/compile/internal/types2/testdata/check/issues.go2
+++ b/src/cmd/compile/internal/types2/testdata/check/issues.go2
@@ -74,8 +74,10 @@ func (u T2[U]) Add1() U {
return u.s + 1
}
+// TODO(rfindley): we should probably report an error here as well, not
+// just when the type is first instantiated.
func NewT2[U any]() T2[U /* ERROR U has no constraints */ ] {
- return T2[U /* ERROR U has no constraints */ ]{}
+ return T2[U]{}
}
func _() {