Files
anzhela.sukhanova 82255d5ee8 [Test] KT-61360: add tests for the IrFakeOverrideBuilder
Add tests for fake overrides with focus on java interoperability

Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
2024-03-04 16:21:02 +00:00

61 lines
1.2 KiB
Kotlin
Vendored

// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FULL_JDK
// FILE: Java1.java
public class Java1 {
public Object component1(){
return "java1";
};
public void foo(Integer i){};
}
// FILE: Java2.java
public interface Java2 {
public Integer component1();
public void foo(Object i);
}
// FILE: Java3.java
public interface Java3 extends KotlinInterface { }
// FILE: 1.kt
data class A (val a : Int): Java1() { //Kotlin ← Java
override fun foo(i: Int?) { }
}
data class B(val a : Int) : Java1(), Java2 { //Kotlin ← Java1, Java2
override fun foo(i: Any?) { }
}
data class C(val a: Int): Java1(), KotlinInterface { //Kotlin ← Java, Kotlin2
override fun foo(i: Any) { }
}
data class D(val a: Int): Java3 { //Kotlin ← Java ← Kotlin
override fun foo(i: Any) { }
}
interface KotlinInterface {
fun component1(): Int
fun foo(i: Any)
}
fun test() {
val k: Int = A(1).component1()
A(1).foo(1)
A(1).foo(null)
val k2: Int = B(1).component1()
B(1).foo(1)
B(1).foo(null)
val k3: Int = C(1).component1()
C(1).foo(1)
C(1).foo(null)
val k4: Int = D(1).component1()
D(1).foo(1)
}