| // errorcheck |
| |
| // Copyright 2010 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 main |
| |
| type I1 interface { // GC_ERROR "invalid recursive type" |
| m() I2 |
| // TODO(mdempsky): The duplicate method error is silly |
| // and redundant, but tricky to prevent as it's actually |
| // being emitted against the underlying interface type |
| // literal, not I1 itself. |
| I2 // ERROR "loop|interface|duplicate method m" |
| } |
| |
| type I2 interface { |
| I1 // GCCGO_ERROR "loop|interface" |
| } |
| |
| |
| var i1 I1 = i2 |
| var i2 I2 |
| var i2a I2 = i1 |