// TARGET_BACKEND: JVM_IR // ISSUE: KT-54487, KT-63350 // FILE: p/I.java package p; public interface I { String foo(); } // FILE: p/I2.java package p; public interface I2 extends I {} // FILE: p/C.java package p; public class C { static class Impl implements I { public String foo() { return "OK"; } } static class C1Base extends Impl {} static class C2Base extends Impl {} public static class C1 extends C1Base implements I2 {} public static class C2 extends C2Base implements I2 {} public static final C1 c1 = new C1(); public static final C2 c2 = new C2(); } // FILE: test.kt import p.C fun union(a: T, b: T) = a fun box() = // receiver type = I2 & C.Impl // method resolved to C.Impl.foo, but in backend IR the resulting call is I2.foo union(C.c1, C.c2).foo()