// compile

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