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