1 // Copyright 2021 The Go Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style
3 // license that can be found in the LICENSE file.
4
5 package p
6
7 // test case 1
8 type T /* ERROR illegal cycle */ [U interface{ M() T[U] }] int
9
10 type X int
11
12 func (X) M() T[X] { return 0 }
13
14 // test case 2
15 type A /* ERROR illegal cycle */ [T interface{ A[T] }] interface{}
16
17 // test case 3
18 type A2 /* ERROR illegal cycle */ [U interface{ A2[U] }] interface{ M() A2[U] }
19
20 type I interface{ A2[I]; M() A2[I] }
21
View as plain text