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

113 lines
1.8 KiB
Kotlin
Vendored

// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FILE: Java1.java
public abstract class Java1 extends A { }
// FILE: Java2.java
public class Java2 extends A {
@Override
public short toShort() {
return 0;
}
@Override
public long toLong() {
return 1;
}
@Override
public int toInt() {
return 2;
}
@Override
public float toFloat() {
return 3;
}
@Override
public double toDouble() { return 4; }
@Override
public byte toByte() {
return 5;
}
}
// FILE: Java3.java
public interface Java3 {
default double toDouble(){
return 100;
};
}
// FILE: 1.kt
abstract class A : Number()
abstract class B : Java1() // Kotlin ← Java ← Kotlin ← Kotlin
abstract class C : Java1() {
override fun toByte(): Byte {
return 1
}
}
abstract class D : Java2() // Kotlin ← Java(override) ← Kotlin ← Kotlin
class E : Java2() {
override fun toByte(): Byte {
return 5
}
override fun toShort(): Short {
return 6
}
}
abstract class F : A(), Java3 // Kotlin ← Java, Kotlin2 ← Kotlin3
abstract class G : A(), Java3 {
override fun toFloat(): Float {
return 1.0F
}
override fun toInt(): Int {
return 1
}
}
abstract class H : Java1(), Java3 //Kotlin ← Java1, Java2 ← Kotlin2
abstract class I : Java1(), Java3 {
override fun toLong(): Long {
return 1
}
override fun toShort(): Short {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I){
a.toInt()
a.toShort()
b.toByte()
b.toLong()
c.toByte()
c.toInt()
d.toShort()
d.toInt()
e.toFloat()
e.toByte()
g.toInt()
g.toByte()
h.toDouble()
h.toByte()
i.toByte()
i.toShort()
}