diff options
Diffstat (limited to 'src/internal/types/testdata/fixedbugs/issue49439.go')
-rw-r--r-- | src/internal/types/testdata/fixedbugs/issue49439.go | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/src/internal/types/testdata/fixedbugs/issue49439.go b/src/internal/types/testdata/fixedbugs/issue49439.go new file mode 100644 index 0000000..b8ad495 --- /dev/null +++ b/src/internal/types/testdata/fixedbugs/issue49439.go @@ -0,0 +1,26 @@ +// Copyright 2021 The Go Authors. All rights reserved. +// Use of this source code is governed by a BSD-style +// license that can be found in the LICENSE file. + +package p + +import "unsafe" + +type T0 /* ERROR invalid recursive type */ [P T0[P]] struct{} + +type T1 /* ERROR invalid recursive type */ [P T2[P]] struct{} +type T2[P T1[P]] struct{} + +type T3 /* ERROR invalid recursive type */ [P interface{ ~struct{ f T3[int] } }] struct{} + +// valid cycle in M +type N[P M[P]] struct{} +type M[Q any] struct { F *M[Q] } + +// "crazy" case +type TC[P [unsafe.Sizeof(func() { + type T [P [unsafe.Sizeof(func(){})]byte] struct{} +})]byte] struct{} + +// test case from issue +type X /* ERROR invalid recursive type */ [T any, PT X[T]] interface{} |