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