[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
+207
@@ -0,0 +1,207 @@
|
||||
class A : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class B : Java1 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override fun overloadMethod(first: String, second: String, third: Int) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class C : Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java2*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class D : Java2 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java2*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override fun overloadMethod(first: String, second: String, third: Int) {
|
||||
}
|
||||
|
||||
override val a: String
|
||||
override get(): String {
|
||||
return "3"
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class E : Java1, Java3 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class F : Java1, Java3 {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override fun foo() {
|
||||
}
|
||||
|
||||
override fun getC(): String {
|
||||
return "5"
|
||||
}
|
||||
|
||||
override fun setB(text: String) {
|
||||
}
|
||||
|
||||
override fun setC(text: String) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
abstract class G : Java1, KotlinInterface {
|
||||
constructor() /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
class H : Java1, KotlinInterface {
|
||||
override val b: String
|
||||
field = b
|
||||
override get
|
||||
|
||||
constructor(b: String) /* primary */ {
|
||||
super/*Java1*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
override fun foo() {
|
||||
}
|
||||
|
||||
override fun overloadMethod(first: String) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
open class KotlinClass {
|
||||
val a: String
|
||||
field = "1"
|
||||
get
|
||||
|
||||
var c: String
|
||||
field = "1"
|
||||
@JvmName(name = "getText")
|
||||
get
|
||||
@JvmName(name = "setText")
|
||||
set
|
||||
|
||||
companion object Companion {
|
||||
private constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun foo() {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
constructor() /* primary */ {
|
||||
super/*Any*/()
|
||||
/* <init>() */
|
||||
|
||||
}
|
||||
|
||||
@JvmName(name = "getBJava")
|
||||
fun getB(): String {
|
||||
return "b"
|
||||
}
|
||||
|
||||
@JvmOverloads
|
||||
open fun overloadMethod(first: String, second: String = "text", third: Int = 10) {
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
interface KotlinInterface {
|
||||
abstract fun foo()
|
||||
|
||||
abstract fun overloadMethod(first: String)
|
||||
|
||||
abstract val a: String
|
||||
abstract get
|
||||
|
||||
abstract val b: String
|
||||
abstract get
|
||||
|
||||
abstract var c: String
|
||||
abstract get
|
||||
abstract set
|
||||
|
||||
}
|
||||
|
||||
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
|
||||
a.<get-a>() /*~> Unit */
|
||||
a.<get-c>() /*~> Unit */
|
||||
a.<set-c>(<set-?> = "2")
|
||||
a.overloadMethod(first = "")
|
||||
b.<get-a>() /*~> Unit */
|
||||
b.<get-c>() /*~> Unit */
|
||||
b.<set-c>(<set-?> = "2")
|
||||
b.overloadMethod(first = "", second = "2", third = 3)
|
||||
c.<get-a>() /*~> Unit */
|
||||
c.<get-c>() /*~> Unit */
|
||||
c.<set-c>(<set-?> = "2")
|
||||
c.overloadMethod(first = "")
|
||||
c.overloadMethod(first = "", second = "", third = 1)
|
||||
d.<get-a>() /*~> Unit */
|
||||
d.<get-c>() /*~> Unit */
|
||||
d.<set-c>(<set-?> = "2")
|
||||
d.overloadMethod(first = "")
|
||||
d.overloadMethod(first = "", second = "", third = 1)
|
||||
e.<get-a>() /*~> Unit */
|
||||
e.getB() /*~> Unit */
|
||||
e.<get-c>() /*~> Unit */
|
||||
e.<set-c>(<set-?> = "2")
|
||||
e.setB(text = "2")
|
||||
e.overloadMethod(first = "")
|
||||
f.<get-a>() /*~> Unit */
|
||||
f.getB() /*~> Unit */
|
||||
f.<get-c>() /*~> Unit */
|
||||
f.<set-c>(<set-?> = "2")
|
||||
f.setB(text = "2")
|
||||
f.overloadMethod(first = "")
|
||||
g.<get-a>() /*~> Unit */
|
||||
g.<get-b>() /*~> Unit */
|
||||
g.<get-c>() /*~> Unit */
|
||||
g.<set-c>(<set-?> = "2")
|
||||
g.overloadMethod(first = "")
|
||||
h.<get-a>() /*~> Unit */
|
||||
h.<get-b>() /*~> Unit */
|
||||
h.<get-c>() /*~> Unit */
|
||||
h.overloadMethod(first = "")
|
||||
h.overloadMethod(first = "", second = "", third = 1)
|
||||
}
|
||||
Reference in New Issue
Block a user