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

281 lines
4.0 KiB
Kotlin
Vendored

abstract class A : Number {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
}
class B : Number {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
override fun doubleValue(): Double {
return 4.0
}
override fun floatValue(): Float {
return 3.0F
}
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2L
}
}
abstract class C : Number, Java2 {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
}
abstract class D : Number, Java2 {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2L
}
}
abstract class E : Number, KotlinInterface {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
}
abstract class F : Number, KotlinInterface {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
override fun doubleValue(): Double {
return 4.0
}
override fun floatValue(): Float {
return 3.0F
}
}
abstract class G : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
abstract class H : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun toByte(): Byte {
return 1B
}
override fun toDouble(): Double {
return 1.0
}
}
abstract class I : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class J : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun toByte(): Byte {
return 1B
}
override fun toShort(): Short {
return 2S
}
}
abstract class K : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class L : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun doubleValue(): Double {
return 4.0
}
override fun floatValue(): Float {
return 3.0F
}
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2L
}
}
class M : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class N : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun intValue(): Int {
return 10
}
}
abstract class O : A, Java2 {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
}
abstract class P : A, Java2 {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2L
}
}
abstract class Q : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
abstract class R : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun toInt(): Int {
return 1
}
}
interface KotlinInterface {
abstract fun byteValue(): Byte
}
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, m: M, n: N, o: O, p: P, q: Q, r: R) {
a.shortValue() /*~> Unit */
a.intValue() /*~> Unit */
b.byteValue() /*~> Unit */
b.longValue() /*~> Unit */
c.intValue() /*~> Unit */
d.intValue() /*~> Unit */
d.longValue() /*~> Unit */
e.byteValue() /*~> Unit */
e.intValue() /*~> Unit */
f.intValue() /*~> Unit */
f.doubleValue() /*~> Unit */
g.toShort() /*~> Unit */
g.toByte() /*~> Unit */
h.toShort() /*~> Unit */
h.toInt() /*~> Unit */
i.toInt() /*~> Unit */
j.toByte() /*~> Unit */
k.intValue() /*~> Unit */
k.byteValue() /*~> Unit */
l.intValue() /*~> Unit */
l.doubleValue() /*~> Unit */
m.intValue() /*~> Unit */
m.doubleValue() /*~> Unit */
n.intValue() /*~> Unit */
o.intValue() /*~> Unit */
o.byteValue() /*~> Unit */
p.intValue() /*~> Unit */
p.shortValue() /*~> Unit */
q.intValue() /*~> Unit */
q.toByte() /*~> Unit */
r.intValue() /*~> Unit */
}