[FIR2IR] Properly approximate intersection types during fir2ir conversion

^KT-62544 Fixed
This commit is contained in:
Dmitriy Novozhilov
2023-10-16 13:19:40 +03:00
committed by Space Team
parent 8c6da9fddb
commit 9366847e96
52 changed files with 450 additions and 803 deletions
@@ -0,0 +1,40 @@
// TARGET_BACKEND: JVM_IR
// ISSUE: KT-62544
// FILE: Base.java
public interface Base {
String get();
}
// FILE: Impl.java
class Impl {}
// FILE: O.java
public class O extends Impl implements Base {
@Override
public String get() { return "O"; }
}
// FILE: K.java
public class K extends Impl implements Base {
@Override
public String get() { return "K"; }
}
// FILE: box.kt
package test
import O
import K
fun <A, B : A, C : A> foo(
b: B,
c: C,
f: (A) -> String
): String {
return f(b) + f(c)
}
fun box(): String {
return foo(O(), K()) { it.get() }
}