8 // both p0.T and p1.T are struct { X, Y int }.
13 // interfaces involving the two
23 // t0 satisfies I0 and p0.I
28 // t1 satisfies I1 and p1.I
33 // check static interface assignments
34 var i0 I0 = t0(0) // ok
35 var i1 I1 = t1(0) // ok
37 var i2 I0 = t1(0) // ERROR "does not implement|incompatible"
38 var i3 I1 = t0(0) // ERROR "does not implement|incompatible"
40 var p0i p0.I = t0(0) // ok
41 var p1i p1.I = t1(0) // ok
43 var p0i1 p0.I = t1(0) // ERROR "does not implement|incompatible"
44 var p0i2 p1.I = t0(0) // ERROR "does not implement|incompatible"
47 // check that cannot assign one to the other,
49 v0 = v1 // ERROR "assign"
50 v1 = v0 // ERROR "assign"
55 i0 = i1 // ERROR "cannot use|incompatible"
56 i1 = i0 // ERROR "cannot use|incompatible"
57 p0i = i1 // ERROR "cannot use|incompatible"
58 p1i = i0 // ERROR "cannot use|incompatible"
59 i0 = p1i // ERROR "cannot use|incompatible"
60 i1 = p0i // ERROR "cannot use|incompatible"
61 p0i = p1i // ERROR "cannot use|incompatible"
62 p1i = p0i // ERROR "cannot use|incompatible"