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