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.
10 type T /* ERROR "invalid recursive type" */ [U interface{ M() T[U] }] int
14 func (X) M() T[X] { return 0 }
17 type A /* ERROR "invalid recursive type" */ [T interface{ A[T] }] interface{}
20 // TODO(gri) should report error only once
21 type A2 /* ERROR "invalid recursive type" */ /* ERROR "invalid recursive type" */ [U interface{ A2[U] }] interface{ M() A2[U] }
23 type I interface{ A2[I]; M() A2[I] }