[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>
This commit is contained in:
committed by
Space Team
parent
30aae741a6
commit
82255d5ee8
+61
@@ -0,0 +1,61 @@
|
||||
// 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)
|
||||
}
|
||||
Reference in New Issue
Block a user