// Copyright 2020 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

type (
        A1[P any] [10]A1 /* ERROR invalid recursive type */ [P]
        A2[P any] [10]A2 /* ERROR invalid recursive type */ [*P]
        A3[P any] [10]*A3[P]

        L1[P any] []L1[P]

        S1[P any] struct{ f S1 /* ERROR invalid recursive type */ [P] }
        S2[P any] struct{ f S2 /* ERROR invalid recursive type */ [*P] } // like example in issue
        S3[P any] struct{ f *S3[P] }

        I1[P any] interface{ I1 /* ERROR invalid recursive type */ [P] }
        I2[P any] interface{ I2 /* ERROR invalid recursive type */ [*P] }
        I3[P any] interface{ *I3 /* ERROR interface contains type constraints */ [P] }
)
