82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
81 lines
1.2 KiB
Kotlin
Vendored
81 lines
1.2 KiB
Kotlin
Vendored
abstract class A : Java1, Java2 {
|
|
constructor() /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class B : Java1, Java2 {
|
|
constructor() /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun setA(t: Any?) {
|
|
}
|
|
|
|
}
|
|
|
|
abstract class C : Java1, KotlinInterface {
|
|
constructor() /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class D : Java1, KotlinInterface {
|
|
override var a: Any
|
|
field = a
|
|
override get
|
|
override set
|
|
|
|
override val b: Boolean
|
|
field = b
|
|
override get
|
|
|
|
constructor(a: Any, b: Boolean) /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
interface KotlinInterface {
|
|
abstract var a: Any
|
|
abstract get
|
|
abstract set
|
|
|
|
abstract val b: Boolean
|
|
abstract get
|
|
|
|
}
|
|
|
|
fun test(a: A, b: B, c: C, d: D) {
|
|
a.getA() /*~> Unit */
|
|
a.setA(t = 3)
|
|
a.setA(t = "")
|
|
a.isB() /*~> Unit */
|
|
a.setB(t = false)
|
|
b.getA() /*~> Unit */
|
|
b.setA(t = 3)
|
|
b.setA(t = "")
|
|
b.isB() /*~> Unit */
|
|
b.setB(t = false)
|
|
c.<get-a>() /*~> Unit */
|
|
c.<get-b>() /*~> Unit */
|
|
c.isB() /*~> Unit */
|
|
c.<set-a>(<set-?> = 1)
|
|
c.setB(t = false)
|
|
d.<get-a>() /*~> Unit */
|
|
d.<get-b>() /*~> Unit */
|
|
d.isB() /*~> Unit */
|
|
d.<set-a>(<set-?> = 1)
|
|
d.setB(t = false)
|
|
}
|