[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
+107
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user