Files
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

221 lines
3.0 KiB
Kotlin
Vendored

// MODULE: separate
// FILE: Test.kt
class I : J2 {
internal val j1: Int
field = 11
internal get
internal val j2: Int
field = 22
internal get
internal val j3: Int
field = 33
internal get
internal val j4: Int
field = 44
internal get
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
// MODULE: main
// FILE: test.kt
class A : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class B : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
}
class C : J {
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
internal override fun funJ4() {
}
}
class D : J2 {
constructor() /* primary */ {
super/*J2*/()
/* <init>() */
}
override fun funJ1() {
}
override fun funJ2() {
}
}
class E : J {
val j1: Int
field = 100
get
val j2: Int
field = 200
get
val j3: Int
field = 300
get
val j4: Int
field = 400
get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
open class F : J {
protected val j1: Int
field = 100
protected get
protected val j2: Int
field = 200
protected get
protected val j3: Int
field = 300
protected get
protected var j4: Int
field = 400
protected get
protected set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class G : J {
internal val j1: Int
field = 100
internal get
internal val j2: Int
field = 200
internal get
internal val j3: Int
field = 300
internal get
internal var j4: Int
field = 400
internal get
internal set
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
class H : J {
private val j1: Int
field = 100
private get
private val j2: Int
field = 200
private get
private val j3: Int
field = 300
private get
private val j4: Int
field = 400
private get
constructor() /* primary */ {
super/*J*/()
/* <init>() */
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a(super<A>).#j1 = 1
a(super<A>).#j2 = 2
a(super<A>).#j4 = 3
a.funJ1()
a.funJ2()
a.funJ4()
b(super<B>).#j1 = 1
b.funJ1()
c(super<C>).#j1 = 1
c(super<C>).#j2 = 2
c(super<C>).#j4 = 3
c.funJ1()
c.funJ2()
c.funJ4()
d(super<D>).#j1 = 1
d.funJ1()
d.funJ2()
e(super<E>).#j1 /*~> Unit */
e(super<E>).#j2 /*~> Unit */
e.<get-j3>() /*~> Unit */
e(super<E>).#j4 /*~> Unit */
f(super<F>).#j1 /*~> Unit */
f(super<F>).#j2 /*~> Unit */
f(super<F>).#j4 /*~> Unit */
g(super<G>).#j1 /*~> Unit */
g(super<G>).#j2 /*~> Unit */
g.<get-j3>() /*~> Unit */
g(super<G>).#j4 /*~> Unit */
h(super<H>).#j1 /*~> Unit */
h(super<H>).#j2 /*~> Unit */
h(super<H>).#j4 /*~> Unit */
i(super<I>).#j1 /*~> Unit */
i(super<I>).#j2 /*~> Unit */
i(super<I>).#j4 /*~> Unit */
}