[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:
anzhela.sukhanova
2024-01-19 18:22:17 +02:00
committed by Space Team
parent 30aae741a6
commit 82255d5ee8
853 changed files with 269404 additions and 0 deletions
@@ -0,0 +1,107 @@
open class A {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open operator fun get(i: Int?): Int {
return 2
}
open operator fun invoke() {
}
open operator fun plus(i: Int?): A {
return A()
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override operator fun get(i: Int?): Int {
return 3
}
override operator fun invoke() {
}
override operator fun plus(i: Int?): A {
return A()
}
}
abstract class E : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class F : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override operator fun get(i: Int?): Int {
return 4
}
override operator fun invoke() {
}
override operator fun plus(i: Int?): Java3 {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
interface KotlinInterface : Java3 {
}
fun test(b: B, c: C, d: D, e: E, f: F) {
val k: Unit = b.invoke()
val k1: A = b.plus(i = 1)
val k2: Int = b.get(i = 1)
val k3: Unit = c.invoke()
val k4: A = c.plus(i = 1)
val k5: Int = c.get(i = 1)
val k6: Unit = d.invoke()
val k7: A = d.plus(i = 1)
val k8: Int = d.get(i = 1)
val k9: Unit = e.invoke()
val k10: Java3 = e.plus(i = 1) /*!! Java3 */
val k11: Int = e.get(i = 1) /*!! Int */
val k12: Unit = f.invoke()
val k13: Java3 = f.plus(i = 1)
val k14: Int = f.get(i = 1)
}