82255d5ee8
Add tests for fake overrides with focus on java interoperability Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
147 lines
2.2 KiB
Kotlin
Vendored
147 lines
2.2 KiB
Kotlin
Vendored
open class A : Java2 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class B : Java2 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun bar(): String {
|
|
return "2"
|
|
}
|
|
|
|
override fun foo(s: String?) {
|
|
}
|
|
|
|
}
|
|
|
|
class C : Java3 {
|
|
constructor() /* primary */ {
|
|
super/*Java3*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class D : Java3 {
|
|
constructor() /* primary */ {
|
|
super/*Java3*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun bar(): String {
|
|
return "3"
|
|
}
|
|
|
|
override fun foo(s: String?) {
|
|
}
|
|
|
|
}
|
|
|
|
abstract class E : Java2, Java4 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class F : Java2, Java4 {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun foo(s: Any?) {
|
|
}
|
|
|
|
}
|
|
|
|
abstract class G : Java2, KotlinInterface {
|
|
constructor() /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
class H : Java2, KotlinInterface {
|
|
override val nullableString: Any
|
|
field = nullableString
|
|
override get
|
|
|
|
constructor(nullableString: Any) /* primary */ {
|
|
super/*Java2*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
override fun foo(s: Any) {
|
|
}
|
|
|
|
}
|
|
|
|
class I : Java5 {
|
|
constructor() /* primary */ {
|
|
super/*Java5*/()
|
|
/* <init>() */
|
|
|
|
}
|
|
|
|
}
|
|
|
|
interface KotlinInterface {
|
|
abstract fun bar(): Any?
|
|
|
|
abstract fun foo(s: Any)
|
|
|
|
abstract val nullableString: Any
|
|
abstract get
|
|
|
|
}
|
|
|
|
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
|
|
a(super<A>).#nullableString /*~> Unit */
|
|
a.foo(s = "")
|
|
a.bar() /*~> Unit */
|
|
b(super<B>).#nullableString /*~> Unit */
|
|
b.foo(s = "")
|
|
b.bar() /*~> Unit */
|
|
c(super<C>).#nullableString /*~> Unit */
|
|
c.foo(s = "")
|
|
c.bar() /*~> Unit */
|
|
d(super<D>).#nullableString /*~> Unit */
|
|
d.foo(s = "")
|
|
d.bar() /*~> Unit */
|
|
e(super<E>).#nullableString /*~> Unit */
|
|
e.foo(s = "")
|
|
e.foo(s = 1)
|
|
e.bar() /*~> Unit */
|
|
f(super<F>).#nullableString /*~> Unit */
|
|
f.foo(s = "")
|
|
f.foo(s = 1)
|
|
f.bar() /*~> Unit */
|
|
g(super<G>).#nullableString /*~> Unit */
|
|
g.foo(s = 1)
|
|
g.bar() /*~> Unit */
|
|
h(super<H>).#nullableString /*~> Unit */
|
|
h.foo(s = 1)
|
|
h.bar() /*~> Unit */
|
|
i(super<I>).#nullableString /*~> Unit */
|
|
i.foo(s = "")
|
|
i.bar() /*~> Unit */
|
|
}
|