[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:
committed by
Space Team
parent
30aae741a6
commit
82255d5ee8
Vendored
+230
@@ -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)
|
||||
}
|
||||
Reference in New Issue
Block a user