[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>
This commit is contained in:
anzhela.sukhanova
2024-01-19 18:22:17 +02:00
committed by Space Team
parent 30aae741a6
commit 82255d5ee8
853 changed files with 269404 additions and 0 deletions
@@ -0,0 +1,220 @@
// 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 */
}