[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
@@ -0,0 +1,61 @@
|
||||
// TARGET_BACKEND: JVM
|
||||
// FULL_JDK
|
||||
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
|
||||
|
||||
// FILE: Java1.java
|
||||
public interface Java1 {
|
||||
public void foo(Integer i);
|
||||
}
|
||||
|
||||
// FILE: Java2.java
|
||||
public interface Java2 extends KotlinInterface { }
|
||||
|
||||
// FILE: Java3.java
|
||||
public interface Java3 {
|
||||
public void foo(Object i);
|
||||
}
|
||||
|
||||
// FILE: 1.kt
|
||||
enum class A : Java1 //Kotlin ← Java
|
||||
|
||||
enum class B : Java1 { //Kotlin ← Java with explicit override
|
||||
FIRST {
|
||||
override fun foo(i: Int) { }
|
||||
},
|
||||
SECOND;
|
||||
override fun foo(i: Int) { }
|
||||
}
|
||||
|
||||
enum class C: Java2 //Kotlin ← Java ← Kotlin
|
||||
|
||||
enum class D : Java2 { //Kotlin ← Java ← Kotlin with explicit override
|
||||
FIRST {
|
||||
override fun foo(i: Int) {}
|
||||
};
|
||||
override fun foo(i: Int) { }
|
||||
}
|
||||
|
||||
enum class E : Java1, Java3 //Kotlin ← Java1, Java2
|
||||
|
||||
enum class F: Java1, Java3 { //Kotlin ← Java1, Java2 with explicit override
|
||||
FIRST {
|
||||
override fun foo(i: Int?) { }
|
||||
};
|
||||
override fun foo(i: Any) { }
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
fun foo(i: Int){}
|
||||
}
|
||||
|
||||
fun test() {
|
||||
B.FIRST.foo(1)
|
||||
B.SECOND.foo(1)
|
||||
B.FIRST.ordinal
|
||||
D.FIRST.foo(1)
|
||||
D.FIRST.ordinal
|
||||
F.FIRST.foo(1)
|
||||
F.FIRST.foo("")
|
||||
F.FIRST.foo(null)
|
||||
F.FIRST.ordinal
|
||||
}
|
||||
Reference in New Issue
Block a user