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

type N /* ERROR invalid recursive type */ interface {
	int | N
}

type A /* ERROR invalid recursive type */ interface {
	int | B
}

type B interface {
	int | A
}

type S /* ERROR invalid recursive type */ struct {
	I // ERROR interface contains type constraints
}

type I interface {
	int | S
}

type P interface {
	*P // ERROR interface contains type constraints
}
