package main

import (
	p0 "./bug0"
	p1 "./bug1"
)

// both p0.T and p1.T are struct { X, Y int }.

var v0 p0.T
var v1 p1.T

// interfaces involving the two

type I0 interface {
	M(p0.T)
}

type I1 interface {
	M(p1.T)
}

// t0 satisfies I0 and p0.I
type t0 int

func (t0) M(p0.T) {}

// t1 satisfies I1 and p1.I
type t1 float

func (t1) M(p1.T) {}

// check static interface assignments
var i0 I0 = t0(0) // ok
var i1 I1 = t1(0) // ok

var i2 I0 = t1(0) // ERROR "is not|incompatible"
var i3 I1 = t0(0) // ERROR "is not|incompatible"

var p0i p0.I = t0(0) // ok
var p1i p1.I = t1(0) // ok

var p0i1 p0.I = t1(0) // ERROR "is not|incompatible"
var p0i2 p1.I = t0(0) // ERROR "is not|incompatible"

func main() {
	// check that cannot assign one to the other,
	// but can convert.
	v0 = v1 // ERROR "assign"
	v1 = v0 // ERROR "assign"

	v0 = p0.T(v1)
	v1 = p1.T(v0)

	i0 = i1   // ERROR "need type assertion|incompatible"
	i1 = i0   // ERROR "need type assertion|incompatible"
	p0i = i1  // ERROR "need type assertion|incompatible"
	p1i = i0  // ERROR "need type assertion|incompatible"
	i0 = p1i  // ERROR "need type assertion|incompatible"
	i1 = p0i  // ERROR "need type assertion|incompatible"
	p0i = p1i // ERROR "need type assertion|incompatible"
	p1i = p0i // ERROR "need type assertion|incompatible"

	i0 = p0i
	p0i = i0

	i1 = p1i
	p1i = i1
}
