82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
61 lines
1.2 KiB
Kotlin
Vendored
61 lines
1.2 KiB
Kotlin
Vendored
// 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
|
|
} |