// compile -d=interfacecycles

// Copyright 2012 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.

// Used to crash compiler in interface type equality check.
// (This test used to have problems - see #15596.)

package p

// exported interfaces

type I1 interface {
      F() interface{I1}
}

type I2 interface {
      F() interface{I2}
}

var V1 I1
var V2 I2

func F() bool {
       return V1 == V2
}

// non-exported interfaces

type i1 interface {
      F() interface{i1}
}

type i2 interface {
      F() interface{i2}
}

var v1 i1
var v2 i2

func f() bool {
       return v1 == v2
}
