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