82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
84 lines
969 B
Kotlin
Vendored
84 lines
969 B
Kotlin
Vendored
open class A {
|
|
constructor() /* primary */ {
|
|
super/*Any*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class B : Java1 {
|
|
constructor() /* primary */ {
|
|
super/*Java1*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class C : Java2 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class D : Java2, Java3 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class E : A, Java3 {
|
|
constructor() /* primary */ {
|
|
super/*A*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
fun A.foo(a: Int) {
|
|
}
|
|
|
|
fun Java2.foo(a: Int) {
|
|
}
|
|
|
|
fun Java3.foo(a: Any) {
|
|
}
|
|
|
|
fun test(b: B, c: C, d: D, e: E) {
|
|
b.<set-a>(value = 10)
|
|
b.foo(a = 1)
|
|
c.<set-a>(value = "3")
|
|
c.foo(a = 1)
|
|
d.foo(a = "")
|
|
e.foo(a = "")
|
|
}
|
|
|
|
var A.a: Int
|
|
get(): Int {
|
|
return 1
|
|
}
|
|
set(value: Int) {
|
|
}
|
|
|
|
var Java2.a: String
|
|
get(): String {
|
|
return "java2"
|
|
}
|
|
set(value: String) {
|
|
}
|
|
|
|
var Java3.a: String
|
|
get(): String {
|
|
return "java3"
|
|
}
|
|
set(value: String) {
|
|
}
|