82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
75 lines
1003 B
Kotlin
Vendored
75 lines
1003 B
Kotlin
Vendored
open class A {
|
|
lateinit var b: Number
|
|
get
|
|
set
|
|
|
|
companion object Companion {
|
|
private constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
const val a: Int
|
|
field = 0
|
|
get
|
|
|
|
}
|
|
|
|
constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class B : Java1 {
|
|
constructor() /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class C : A, Java2 {
|
|
constructor() /* primary */ {
|
|
super/*A*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
abstract class D : A, Java3 {
|
|
constructor() /* primary */ {
|
|
super/*A*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
interface KotlinInterface {
|
|
abstract var a: Int
|
|
abstract get
|
|
abstract set
|
|
|
|
abstract var b: Number
|
|
abstract get
|
|
abstract set
|
|
|
|
}
|
|
|
|
fun test(b: B, c: C, d: D) {
|
|
b.<set-b>(<set-?> = 3)
|
|
b.<get-b>() /*~> Unit */
|
|
c.<set-b>(<set-?> = 4)
|
|
c.<get-b>() /*~> Unit */
|
|
d.<set-a>(<set-?> = 2)
|
|
d.<set-b>(<set-?> = 7)
|
|
d.<get-a>() /*~> Unit */
|
|
d.<get-b>() /*~> Unit */
|
|
}
|