[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,230 @@
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)
}