Files
kotlin-fork/compiler/testData/ir/irText/fakeOverrides/javastatic/staticOverrideOnComplexHierarchy.kt.txt
anzhela.sukhanova 82255d5ee8 [Test] KT-61360: add tests for the IrFakeOverrideBuilder
Add tests for fake overrides with focus on java interoperability

Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
2024-03-04 16:21:02 +00:00

231 lines
3.2 KiB
Kotlin
Vendored

abstract class A : Java2, Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2, Java1, KotlinInterface {
override var a: Int
field = a
override get
override set
constructor(a: Int) /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): Int {
return 5
}
override fun foo(t: Int) {
}
}
class C : Java1, KotlinInterface, KotlinInterface2 {
override var a: Int
field = a
override get
override set
constructor(a: Int) /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): Int {
return 1
}
override fun foo(t: Any) {
}
}
class D : Java2, Java1, Java3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class E : Java2, Java1, Java3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(t: Int) {
}
}
abstract class F : Java1, Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class G : Java1, Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): Int {
return 10
}
override fun foo(t: Int) {
}
override var a: Int
override get(): Int {
return 10
}
override set(value: Int) {
}
}
class H : Java4, KotlinInterface2 {
override var a: Int
field = a
override get
override set
constructor(a: Int) /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): Int {
return 1
}
override fun foo(t: Any) {
}
override fun foo(t: Int) {
}
}
abstract class I : Java5, KotlinInterface {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5, KotlinInterface {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override var a: Int
override get(): Int {
return 10
}
override set(value: Int) {
}
}
class K : Java5, Java3 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class L : Java5, Java3 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo(t: Int) {
}
}
interface KotlinInterface {
fun bar(): Int {
return 10
}
fun foo(t: Int) {
}
abstract var a: Int
abstract get
abstract set
}
interface KotlinInterface2 {
abstract fun bar(): Any
abstract fun foo(t: Any)
abstract val a: Any
abstract get
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L) {
a.<get-a>() /*~> Unit */
a.foo(t = 1)
a.bar() /*~> Unit */
b.<get-a>() /*~> Unit */
b.foo(t = 1)
b.bar() /*~> Unit */
c.<get-a>() /*~> Unit */
c.foo(t = 1)
c.foo(t = "")
c.bar() /*~> Unit */
d.foo(t = 1)
e.foo(t = 1)
f.<get-a>() /*~> Unit */
f.foo(t = 1)
f.bar() /*~> Unit */
g.<get-a>() /*~> Unit */
g.foo(t = 1)
g.bar() /*~> Unit */
h.<get-a>() /*~> Unit */
h.foo(t = 1)
h.foo(t = "")
h.bar() /*~> Unit */
i.<get-a>() /*~> Unit */
i.foo(t = 1)
i.bar() /*~> Unit */
j.<get-a>() /*~> Unit */
j.foo(t = 1)
j.bar() /*~> Unit */
k.foo(t = 1)
l.foo(t = 1)
}