Files
kotlin-fork/compiler/testData/ir/irText/fakeOverrides/gettersetter/getterSetterOverrideonComplexHierarchy.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

215 lines
3.2 KiB
Kotlin
Vendored

abstract class A : Java2, Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2, Java1, KotlinInterface {
override var b: Boolean
field = false
override get(): Boolean {
return true
}
override set
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class C : Java2, KotlinInterface, KotlinInterface2 {
override var b: Boolean
field = b
override get
override set
constructor(b: Boolean) /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun isB(): Boolean {
return true
}
}
abstract class D : Java2, Java1, Java3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class E : Java2, Java1, Java3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun setA(t: Any?) {
}
}
abstract class F : Java2, Java4 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class G : Java2, Java4 {
override var b: Boolean
field = b
override get
override set
constructor(b: Boolean) /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun getA(): Int {
return 10
}
}
abstract class H : Java4, KotlinInterface2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class I : Java4, KotlinInterface2 {
override var b: Boolean
field = false
override get(): Boolean {
return true
}
override set(value: Boolean) {
<this>.#b = false
}
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
abstract class J : Java2, KotlinInterface3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class K : Java2, KotlinInterface3 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun setA(t: Any?) {
}
}
abstract class L : Java2, Java5 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class M : Java2, Java5 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun setA(t: Any) {
}
}
interface KotlinInterface {
abstract var b: Boolean
abstract get
abstract set
}
interface KotlinInterface2 {
fun isB(): Boolean {
return true
}
}
interface KotlinInterface3 : Java3 {
}
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, m: M) {
a.getA() /*~> Unit */
a.isB() /*~> Unit */
b.getA() /*~> Unit */
b.setA(t = 2)
b.isB() /*~> Unit */
c.getA() /*~> Unit */
c.isB() /*~> Unit */
c.setA(t = 2)
c(super<C>).#b = false
d.getA() /*~> Unit */
d(super<D>).#b /*~> Unit */
d.isB() /*~> Unit */
e.getA() /*~> Unit */
e(super<E>).#b /*~> Unit */
e.isB() /*~> Unit */
f.getA() /*~> Unit */
f.isB() /*~> Unit */
f.setA(t = 2)
g.getA() /*~> Unit */
g.isB() /*~> Unit */
g.setA(t = 2)
h.<get-b>() /*~> Unit */
h.isB() /*~> Unit */
h.<set-b>(<set-?> = false)
i.<get-b>() /*~> Unit */
i.isB() /*~> Unit */
i.<set-b>(value = false)
j.getA() /*~> Unit */
j.isB() /*~> Unit */
k.getA() /*~> Unit */
k.isB() /*~> Unit */
l.getA() /*~> Unit */
l.isB() /*~> Unit */
m.getA() /*~> Unit */
m.isB() /*~> Unit */
}