[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
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,280 @@
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 */
}
File diff suppressed because it is too large Load Diff
@@ -0,0 +1,220 @@
// TARGET_BACKEND: JVM
// MUTE_SIGNATURE_COMPARISON_K2: JVM_IR
// FILE: Java1.java
public abstract class Java1 extends Number { }
// FILE: Java2.java
public interface Java2 {
default int intValue(){
return 2;
}
}
// FILE: Java3.java
public class Java3 extends Number {
@Override
public int intValue() {
return 0;
}
@Override
public long longValue() {
return 2;
}
@Override
public float floatValue() {
return 3;
}
@Override
public double doubleValue() {
return 4;
}
}
// FILE: Java4.java
public abstract class Java4 extends A { }
// FILE: Java5.java
public class Java5 extends A {
@Override
public int intValue() {
return 0;
}
@Override
public long longValue() {
return 1;
}
@Override
public float floatValue() {
return 2;
}
@Override
public double doubleValue() {
return 3;
}
}
// FILE: 1.kt
abstract class A : java.lang.Number() //Kotlin ← Java
class B : java.lang.Number() {
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2
}
override fun floatValue(): Float {
return 3.0F
}
override fun doubleValue(): Double {
return 4.0
}
}
abstract class C : java.lang.Number(), Java2 //Kotlin ← Java1, Java2
abstract class D : java.lang.Number(), Java2 {
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2
}
}
abstract class E : java.lang.Number(), KotlinInterface //Kotlin ← Java, Kotlin2
abstract class F : java.lang.Number(), KotlinInterface {
override fun floatValue(): Float {
return 3.0F
}
override fun doubleValue(): Double {
return 4.0
}
}
abstract class G : Java1() //Kotlin ← Java1 ← Java2
abstract class H : Java1() {
override fun toByte(): Byte {
return 1
}
override fun toDouble(): Double {
return 1.0
}
}
abstract class I : Java3() //Kotlin ← Java1 (override) ← Java2
class J : Java3() {
override fun toByte(): Byte {
return 1
}
override fun toShort(): Short {
return 2
}
}
abstract class K : Java4() //Kotlin ← Java ← Kotlin ← Java
class L : Java4() {
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2
}
override fun floatValue(): Float {
return 3.0F
}
override fun doubleValue(): Double {
return 4.0
}
}
class M : Java5() //Kotlin ← Java(override) ← Kotlin ← Java
class N : Java5() {
override fun intValue(): Int {
return 10
}
}
abstract class O : A(), Java2 // Kotlin ← Java, Kotlin2 ← Java2
abstract class P : A(), Java2 {
override fun intValue(): Int {
return 1
}
override fun longValue(): Long {
return 2
}
}
abstract class Q : Java1() , Java2 //Kotlin ← Java1, Java2 ← Java3
abstract class R : Java1() , Java2 {
override fun toInt(): Int {
return 1
}
}
interface KotlinInterface {
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()
a.intValue()
b.byteValue()
b.longValue()
c.intValue()
d.intValue()
d.longValue()
e.byteValue()
e.intValue()
f.intValue()
f.doubleValue()
g.toShort()
g.toByte()
h.toShort()
h.toInt()
i.toInt()
j.toByte()
k.intValue()
k.byteValue()
l.intValue()
l.doubleValue()
m.intValue()
m.doubleValue()
n.intValue()
o.intValue()
o.byteValue()
p.intValue()
p.shortValue()
q.intValue()
q.toByte()
r.intValue()
}
@@ -0,0 +1,280 @@
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 */
}
@@ -0,0 +1,950 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : Number {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#byteValue(){}kotlin.Byte
// Public signature: /A.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: A#doubleValue(){}kotlin.Double
// Public signature: /A.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: A#floatValue(){}kotlin.Float
// Public signature: /A.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: A#intValue(){}kotlin.Int
// Public signature: /A.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
abstract /* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: A#longValue(){}kotlin.Long
// Public signature: /A.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: A#shortValue(){}kotlin.Short
// Public signature: /A.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Number {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#byteValue(){}kotlin.Byte
// Public signature: /B.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: B#shortValue(){}kotlin.Short
// Public signature: /B.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: B#doubleValue(){}kotlin.Double
// Public signature: /B.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: B#floatValue(){}kotlin.Float
// Public signature: /B.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: B#intValue(){}kotlin.Int
// Public signature: /B.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: B#longValue(){}kotlin.Long
// Public signature: /B.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
override fun longValue(): Long
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Number, Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#byteValue(){}kotlin.Byte
// Public signature: /C.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: C#doubleValue(){}kotlin.Double
// Public signature: /C.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: C#floatValue(){}kotlin.Float
// Public signature: /C.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: C#intValue(){}kotlin.Int
// Public signature: /C.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
/* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: C#longValue(){}kotlin.Long
// Public signature: /C.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: C#shortValue(){}kotlin.Short
// Public signature: /C.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : Number, Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#byteValue(){}kotlin.Byte
// Public signature: /D.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: D#doubleValue(){}kotlin.Double
// Public signature: /D.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: D#floatValue(){}kotlin.Float
// Public signature: /D.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: D#shortValue(){}kotlin.Short
// Public signature: /D.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: D#intValue(){}kotlin.Int
// Public signature: /D.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: D#longValue(){}kotlin.Long
// Public signature: /D.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
override fun longValue(): Long
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Number, KotlinInterface {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#byteValue(){}kotlin.Byte
// Public signature: /E.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: E#doubleValue(){}kotlin.Double
// Public signature: /E.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: E#floatValue(){}kotlin.Float
// Public signature: /E.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: E#intValue(){}kotlin.Int
// Public signature: /E.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
abstract /* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: E#longValue(){}kotlin.Long
// Public signature: /E.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: E#shortValue(){}kotlin.Short
// Public signature: /E.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
abstract class F : Number, KotlinInterface {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#byteValue(){}kotlin.Byte
// Public signature: /F.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: F#intValue(){}kotlin.Int
// Public signature: /F.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
abstract /* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: F#longValue(){}kotlin.Long
// Public signature: /F.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: F#shortValue(){}kotlin.Short
// Public signature: /F.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: F#doubleValue(){}kotlin.Double
// Public signature: /F.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: F#floatValue(){}kotlin.Float
// Public signature: /F.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
override fun floatValue(): Float
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java1 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#toByte(){}kotlin.Byte
// Public signature: /G.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: G#toChar(){}kotlin.Char
// Public signature: /G.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: G#toDouble(){}kotlin.Double
// Public signature: /G.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: G#toFloat(){}kotlin.Float
// Public signature: /G.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: G#toInt(){}kotlin.Int
// Public signature: /G.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: G#toLong(){}kotlin.Long
// Public signature: /G.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: G#toShort(){}kotlin.Short
// Public signature: /G.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
abstract class H : Java1 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#toChar(){}kotlin.Char
// Public signature: /H.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: H#toFloat(){}kotlin.Float
// Public signature: /H.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: H#toInt(){}kotlin.Int
// Public signature: /H.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: H#toLong(){}kotlin.Long
// Public signature: /H.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: H#toShort(){}kotlin.Short
// Public signature: /H.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
// CHECK JVM_IR:
// Mangled name: H#toByte(){}kotlin.Byte
// Public signature: /H.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: H#toDouble(){}kotlin.Double
// Public signature: /H.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
override fun toDouble(): Double
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
abstract class I : Java3 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: I#toByte(){}kotlin.Byte
// Public signature: /I.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: I#toChar(){}kotlin.Char
// Public signature: /I.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: I#toDouble(){}kotlin.Double
// Public signature: /I.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
@Override
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: I#toFloat(){}kotlin.Float
// Public signature: /I.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
@Override
/* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: I#toInt(){}kotlin.Int
// Public signature: /I.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
@Override
/* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: I#toLong(){}kotlin.Long
// Public signature: /I.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
@Override
/* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: I#toShort(){}kotlin.Short
// Public signature: /I.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java3 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: J#toChar(){}kotlin.Char
// Public signature: /J.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: J#toDouble(){}kotlin.Double
// Public signature: /J.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
@Override
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: J#toFloat(){}kotlin.Float
// Public signature: /J.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
@Override
/* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: J#toInt(){}kotlin.Int
// Public signature: /J.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
@Override
/* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: J#toLong(){}kotlin.Long
// Public signature: /J.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
@Override
/* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: J#toByte(){}kotlin.Byte
// Public signature: /J.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: J#toShort(){}kotlin.Short
// Public signature: /J.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
override fun toShort(): Short
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
abstract class K : Java4 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: K#byteValue(){}kotlin.Byte
// Public signature: /K.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: K#doubleValue(){}kotlin.Double
// Public signature: /K.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: K#floatValue(){}kotlin.Float
// Public signature: /K.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: K#intValue(){}kotlin.Int
// Public signature: /K.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
abstract /* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: K#longValue(){}kotlin.Long
// Public signature: /K.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: K#shortValue(){}kotlin.Short
// Public signature: /K.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java4 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: L#byteValue(){}kotlin.Byte
// Public signature: /L.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: L#shortValue(){}kotlin.Short
// Public signature: /L.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: L#doubleValue(){}kotlin.Double
// Public signature: /L.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: L#floatValue(){}kotlin.Float
// Public signature: /L.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: L#intValue(){}kotlin.Int
// Public signature: /L.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: L#longValue(){}kotlin.Long
// Public signature: /L.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
override fun longValue(): Long
}
// CHECK:
// Mangled name: M
// Public signature: /M|null[0]
class M : Java5 {
// CHECK:
// Mangled name: M#<init>(){}
// Public signature: /M.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: M#byteValue(){}kotlin.Byte
// Public signature: /M.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: M#doubleValue(){}kotlin.Double
// Public signature: /M.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
@Override
/* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: M#floatValue(){}kotlin.Float
// Public signature: /M.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
@Override
/* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: M#intValue(){}kotlin.Int
// Public signature: /M.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
@Override
/* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: M#longValue(){}kotlin.Long
// Public signature: /M.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
@Override
/* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: M#shortValue(){}kotlin.Short
// Public signature: /M.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: N
// Public signature: /N|null[0]
class N : Java5 {
// CHECK:
// Mangled name: N#<init>(){}
// Public signature: /N.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: N#byteValue(){}kotlin.Byte
// Public signature: /N.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: N#doubleValue(){}kotlin.Double
// Public signature: /N.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
@Override
/* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: N#floatValue(){}kotlin.Float
// Public signature: /N.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
@Override
/* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: N#longValue(){}kotlin.Long
// Public signature: /N.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
@Override
/* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: N#shortValue(){}kotlin.Short
// Public signature: /N.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: N#intValue(){}kotlin.Int
// Public signature: /N.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
override fun intValue(): Int
}
// CHECK:
// Mangled name: O
// Public signature: /O|null[0]
abstract class O : A, Java2 {
// CHECK:
// Mangled name: O#<init>(){}
// Public signature: /O.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: O#byteValue(){}kotlin.Byte
// Public signature: /O.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: O#doubleValue(){}kotlin.Double
// Public signature: /O.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: O#floatValue(){}kotlin.Float
// Public signature: /O.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: O#intValue(){}kotlin.Int
// Public signature: /O.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
/* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: O#longValue(){}kotlin.Long
// Public signature: /O.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
abstract /* fake */ override fun longValue(): Long
// CHECK JVM_IR:
// Mangled name: O#shortValue(){}kotlin.Short
// Public signature: /O.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
}
// CHECK:
// Mangled name: P
// Public signature: /P|null[0]
abstract class P : A, Java2 {
// CHECK:
// Mangled name: P#<init>(){}
// Public signature: /P.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: P#byteValue(){}kotlin.Byte
// Public signature: /P.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
/* fake */ override fun byteValue(): Byte
// CHECK JVM_IR:
// Mangled name: P#doubleValue(){}kotlin.Double
// Public signature: /P.doubleValue|-6902899017265368517[0]
// Public signature debug description: doubleValue(){}kotlin.Double
abstract /* fake */ override fun doubleValue(): Double
// CHECK JVM_IR:
// Mangled name: P#floatValue(){}kotlin.Float
// Public signature: /P.floatValue|6829761068481402777[0]
// Public signature debug description: floatValue(){}kotlin.Float
abstract /* fake */ override fun floatValue(): Float
// CHECK JVM_IR:
// Mangled name: P#shortValue(){}kotlin.Short
// Public signature: /P.shortValue|4665777070918308009[0]
// Public signature debug description: shortValue(){}kotlin.Short
/* fake */ override fun shortValue(): Short
// CHECK JVM_IR:
// Mangled name: P#intValue(){}kotlin.Int
// Public signature: /P.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: P#longValue(){}kotlin.Long
// Public signature: /P.longValue|-7741372667282668243[0]
// Public signature debug description: longValue(){}kotlin.Long
override fun longValue(): Long
}
// CHECK:
// Mangled name: Q
// Public signature: /Q|null[0]
abstract class Q : Java1, Java2 {
// CHECK:
// Mangled name: Q#<init>(){}
// Public signature: /Q.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: Q#intValue(){}kotlin.Int
// Public signature: /Q.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
/* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: Q#toByte(){}kotlin.Byte
// Public signature: /Q.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: Q#toChar(){}kotlin.Char
// Public signature: /Q.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: Q#toDouble(){}kotlin.Double
// Public signature: /Q.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: Q#toFloat(){}kotlin.Float
// Public signature: /Q.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: Q#toInt(){}kotlin.Int
// Public signature: /Q.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: Q#toLong(){}kotlin.Long
// Public signature: /Q.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: Q#toShort(){}kotlin.Short
// Public signature: /Q.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: R
// Public signature: /R|null[0]
abstract class R : Java1, Java2 {
// CHECK:
// Mangled name: R#<init>(){}
// Public signature: /R.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: R#intValue(){}kotlin.Int
// Public signature: /R.intValue|-8318230696787382776[0]
// Public signature debug description: intValue(){}kotlin.Int
/* fake */ override fun intValue(): Int
// CHECK JVM_IR:
// Mangled name: R#toByte(){}kotlin.Byte
// Public signature: /R.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: R#toChar(){}kotlin.Char
// Public signature: /R.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: R#toDouble(){}kotlin.Double
// Public signature: /R.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: R#toFloat(){}kotlin.Float
// Public signature: /R.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: R#toLong(){}kotlin.Long
// Public signature: /R.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: R#toShort(){}kotlin.Short
// Public signature: /R.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
// CHECK JVM_IR:
// Mangled name: R#toInt(){}kotlin.Int
// Public signature: /R.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
override fun toInt(): Int
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#byteValue(){}kotlin.Byte
// Public signature: /KotlinInterface.byteValue|-6104988242413630386[0]
// Public signature debug description: byteValue(){}kotlin.Byte
abstract fun byteValue(): Byte
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R){}
// Public signature: /test|-2977488972427111385[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K;L;M;N;O;P;Q;R){}
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): Unit
@@ -0,0 +1,585 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Number]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A
CONSTRUCTOR visibility:public <> () returnType:<root>.A [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Number'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[kotlin.Number]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in kotlin.Number
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:toByte visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.Byte
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toByte (): kotlin.Byte declared in <root>.C'
CONST Byte type=kotlin.Byte value=1
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Byte [fake_override]
annotations:
Override
overridden:
public open fun toByte (): kotlin.Byte declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Double [fake_override]
annotations:
Override
overridden:
public open fun toDouble (): kotlin.Double declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Float [fake_override]
annotations:
Override
overridden:
public open fun toFloat (): kotlin.Float declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toInt visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
Override
overridden:
public open fun toInt (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toLong visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Long [fake_override]
annotations:
Override
overridden:
public open fun toLong (): kotlin.Long declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toShort visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Short [fake_override]
annotations:
Override
overridden:
public open fun toShort (): kotlin.Short declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.E
CONSTRUCTOR visibility:public <> () returnType:<root>.E [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Double [fake_override]
annotations:
Override
overridden:
public open fun toDouble (): kotlin.Double declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Float [fake_override]
annotations:
Override
overridden:
public open fun toFloat (): kotlin.Float declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toInt visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
annotations:
Override
overridden:
public open fun toInt (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toLong visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Long [fake_override]
annotations:
Override
overridden:
public open fun toLong (): kotlin.Long declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:toByte visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Byte
overridden:
public open fun toByte (): kotlin.Byte declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toByte (): kotlin.Byte declared in <root>.E'
CONST Byte type=kotlin.Byte value=5
FUN name:toShort visibility:public modality:OPEN <> ($this:<root>.E) returnType:kotlin.Short
overridden:
public open fun toShort (): kotlin.Short declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toShort (): kotlin.Short declared in <root>.E'
CONST Short type=kotlin.Short value=6
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.A; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.A; <root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.A
public open fun toDouble (): kotlin.Double declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.A
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.A; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.G
CONSTRUCTOR visibility:public <> () returnType:<root>.G [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.A; <root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.A
public open fun toDouble (): kotlin.Double declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.A
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:toFloat visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Float
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toFloat (): kotlin.Float declared in <root>.G'
CONST Float type=kotlin.Float value=1.0
FUN name:toInt visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.Int
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toInt (): kotlin.Int declared in <root>.G'
CONST Int type=kotlin.Int value=1
CLASS CLASS name:H modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.Java1
public open fun toDouble (): kotlin.Double declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toLong visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Long [fake_override]
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toShort visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Short [fake_override]
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toByte visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Byte [fake_override]
overridden:
public abstract fun toByte (): kotlin.Byte declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toChar visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Char [fake_override]
annotations:
Deprecated(message = "Direct conversion to Char is deprecated. Use toInt().toChar() or Char constructor instead.
If you override toChar() function in your Number inheritor, it's recommended to gradually deprecate the overriding function and then remove it.
See https://youtrack.jetbrains.com/issue/KT-46465 for details about the migration", replaceWith = ReplaceWith(expression = "this.toInt().toChar()", imports = []), level = <null>)
DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3", hiddenSince = <null>)
overridden:
public open fun toChar (): kotlin.Char declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toDouble visibility:public modality:OPEN <> ($this:kotlin.Number) returnType:kotlin.Double [fake_override]
overridden:
public abstract fun toDouble (): kotlin.Double declared in <root>.Java1
public open fun toDouble (): kotlin.Double declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toFloat visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Float [fake_override]
overridden:
public abstract fun toFloat (): kotlin.Float declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toInt visibility:public modality:ABSTRACT <> ($this:kotlin.Number) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun toInt (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Number
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:toLong visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Long
overridden:
public abstract fun toLong (): kotlin.Long declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toLong (): kotlin.Long declared in <root>.I'
CONST Long type=kotlin.Long value=1
FUN name:toShort visibility:public modality:OPEN <> ($this:<root>.I) returnType:kotlin.Short
overridden:
public abstract fun toShort (): kotlin.Short declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun toShort (): kotlin.Short declared in <root>.I'
CONST Short type=kotlin.Short value=1
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toInt (): kotlin.Int declared in <root>.A' type=kotlin.Int origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toShort (): kotlin.Short declared in <root>.A' type=kotlin.Short origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toByte (): kotlin.Byte declared in <root>.B' type=kotlin.Byte origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toLong (): kotlin.Long declared in <root>.B' type=kotlin.Long origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toByte (): kotlin.Byte declared in <root>.C' type=kotlin.Byte origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toInt (): kotlin.Int declared in <root>.C' type=kotlin.Int origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toShort (): kotlin.Short declared in <root>.D' type=kotlin.Short origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toInt (): kotlin.Int declared in <root>.D' type=kotlin.Int origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toFloat (): kotlin.Float declared in <root>.E' type=kotlin.Float origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toByte (): kotlin.Byte declared in <root>.E' type=kotlin.Byte origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toInt (): kotlin.Int declared in <root>.G' type=kotlin.Int origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toByte (): kotlin.Byte declared in <root>.G' type=kotlin.Byte origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toDouble (): kotlin.Double declared in <root>.H' type=kotlin.Double origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toByte (): kotlin.Byte declared in <root>.H' type=kotlin.Byte origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun toByte (): kotlin.Byte declared in <root>.I' type=kotlin.Byte origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun toShort (): kotlin.Short declared in <root>.I' type=kotlin.Short origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,113 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FILE: Java1.java
public abstract class Java1 extends A { }
// FILE: Java2.java
public class Java2 extends A {
@Override
public short toShort() {
return 0;
}
@Override
public long toLong() {
return 1;
}
@Override
public int toInt() {
return 2;
}
@Override
public float toFloat() {
return 3;
}
@Override
public double toDouble() { return 4; }
@Override
public byte toByte() {
return 5;
}
}
// FILE: Java3.java
public interface Java3 {
default double toDouble(){
return 100;
};
}
// FILE: 1.kt
abstract class A : Number()
abstract class B : Java1() // Kotlin ← Java ← Kotlin ← Kotlin
abstract class C : Java1() {
override fun toByte(): Byte {
return 1
}
}
abstract class D : Java2() // Kotlin ← Java(override) ← Kotlin ← Kotlin
class E : Java2() {
override fun toByte(): Byte {
return 5
}
override fun toShort(): Short {
return 6
}
}
abstract class F : A(), Java3 // Kotlin ← Java, Kotlin2 ← Kotlin3
abstract class G : A(), Java3 {
override fun toFloat(): Float {
return 1.0F
}
override fun toInt(): Int {
return 1
}
}
abstract class H : Java1(), Java3 //Kotlin ← Java1, Java2 ← Kotlin2
abstract class I : Java1(), Java3 {
override fun toLong(): Long {
return 1
}
override fun toShort(): Short {
return 1
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I){
a.toInt()
a.toShort()
b.toByte()
b.toLong()
c.toByte()
c.toInt()
d.toShort()
d.toInt()
e.toFloat()
e.toByte()
g.toInt()
g.toByte()
h.toDouble()
h.toByte()
i.toByte()
i.toShort()
}
@@ -0,0 +1,127 @@
abstract class A : Number {
constructor() /* primary */ {
super/*Number*/()
/* <init>() */
}
}
abstract class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
abstract class C : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun toByte(): Byte {
return 1B
}
}
abstract class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class E : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun toByte(): Byte {
return 5B
}
override fun toShort(): Short {
return 6S
}
}
abstract class F : A, Java3 {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
}
abstract class G : A, Java3 {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun toFloat(): Float {
return 1.0F
}
override fun toInt(): Int {
return 1
}
}
abstract class H : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
abstract class I : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun toLong(): Long {
return 1L
}
override fun toShort(): Short {
return 1S
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I) {
a.toInt() /*~> Unit */
a.toShort() /*~> Unit */
b.toByte() /*~> Unit */
b.toLong() /*~> Unit */
c.toByte() /*~> Unit */
c.toInt() /*~> Unit */
d.toShort() /*~> Unit */
d.toInt() /*~> Unit */
e.toFloat() /*~> Unit */
e.toByte() /*~> Unit */
g.toInt() /*~> Unit */
g.toByte() /*~> Unit */
h.toDouble() /*~> Unit */
h.toByte() /*~> Unit */
i.toByte() /*~> Unit */
i.toShort() /*~> Unit */
}
@@ -0,0 +1,510 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : Number {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#toByte(){}kotlin.Byte
// Public signature: /A.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: A#toChar(){}kotlin.Char
// Public signature: /A.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: A#toDouble(){}kotlin.Double
// Public signature: /A.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: A#toFloat(){}kotlin.Float
// Public signature: /A.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: A#toInt(){}kotlin.Int
// Public signature: /A.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: A#toLong(){}kotlin.Long
// Public signature: /A.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: A#toShort(){}kotlin.Short
// Public signature: /A.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#toByte(){}kotlin.Byte
// Public signature: /B.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: B#toChar(){}kotlin.Char
// Public signature: /B.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: B#toDouble(){}kotlin.Double
// Public signature: /B.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: B#toFloat(){}kotlin.Float
// Public signature: /B.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: B#toInt(){}kotlin.Int
// Public signature: /B.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: B#toLong(){}kotlin.Long
// Public signature: /B.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: B#toShort(){}kotlin.Short
// Public signature: /B.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Java1 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#toChar(){}kotlin.Char
// Public signature: /C.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: C#toDouble(){}kotlin.Double
// Public signature: /C.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
abstract /* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: C#toFloat(){}kotlin.Float
// Public signature: /C.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: C#toInt(){}kotlin.Int
// Public signature: /C.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: C#toLong(){}kotlin.Long
// Public signature: /C.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: C#toShort(){}kotlin.Short
// Public signature: /C.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
// CHECK JVM_IR:
// Mangled name: C#toByte(){}kotlin.Byte
// Public signature: /C.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
override fun toByte(): Byte
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#toByte(){}kotlin.Byte
// Public signature: /D.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
@Override
/* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: D#toChar(){}kotlin.Char
// Public signature: /D.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: D#toDouble(){}kotlin.Double
// Public signature: /D.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
@Override
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: D#toFloat(){}kotlin.Float
// Public signature: /D.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
@Override
/* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: D#toInt(){}kotlin.Int
// Public signature: /D.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
@Override
/* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: D#toLong(){}kotlin.Long
// Public signature: /D.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
@Override
/* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: D#toShort(){}kotlin.Short
// Public signature: /D.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
@Override
/* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java2 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#toChar(){}kotlin.Char
// Public signature: /E.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: E#toDouble(){}kotlin.Double
// Public signature: /E.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
@Override
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: E#toFloat(){}kotlin.Float
// Public signature: /E.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
@Override
/* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: E#toInt(){}kotlin.Int
// Public signature: /E.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
@Override
/* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: E#toLong(){}kotlin.Long
// Public signature: /E.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
@Override
/* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: E#toByte(){}kotlin.Byte
// Public signature: /E.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: E#toShort(){}kotlin.Short
// Public signature: /E.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
override fun toShort(): Short
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
abstract class F : A, Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#toByte(){}kotlin.Byte
// Public signature: /F.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: F#toChar(){}kotlin.Char
// Public signature: /F.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: F#toDouble(){}kotlin.Double
// Public signature: /F.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: F#toFloat(){}kotlin.Float
// Public signature: /F.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: F#toInt(){}kotlin.Int
// Public signature: /F.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: F#toLong(){}kotlin.Long
// Public signature: /F.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: F#toShort(){}kotlin.Short
// Public signature: /F.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : A, Java3 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#toByte(){}kotlin.Byte
// Public signature: /G.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: G#toChar(){}kotlin.Char
// Public signature: /G.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: G#toDouble(){}kotlin.Double
// Public signature: /G.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: G#toLong(){}kotlin.Long
// Public signature: /G.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: G#toShort(){}kotlin.Short
// Public signature: /G.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
// CHECK JVM_IR:
// Mangled name: G#toFloat(){}kotlin.Float
// Public signature: /G.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: G#toInt(){}kotlin.Int
// Public signature: /G.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
override fun toInt(): Int
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
abstract class H : Java1, Java3 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#toByte(){}kotlin.Byte
// Public signature: /H.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: H#toChar(){}kotlin.Char
// Public signature: /H.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: H#toDouble(){}kotlin.Double
// Public signature: /H.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: H#toFloat(){}kotlin.Float
// Public signature: /H.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: H#toInt(){}kotlin.Int
// Public signature: /H.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: H#toLong(){}kotlin.Long
// Public signature: /H.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
abstract /* fake */ override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: H#toShort(){}kotlin.Short
// Public signature: /H.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
abstract /* fake */ override fun toShort(): Short
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
abstract class I : Java1, Java3 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: I#toByte(){}kotlin.Byte
// Public signature: /I.toByte|6564132604093419[0]
// Public signature debug description: toByte(){}kotlin.Byte
abstract /* fake */ override fun toByte(): Byte
// CHECK JVM_IR:
// Mangled name: I#toChar(){}kotlin.Char
// Public signature: /I.toChar|-555627748136403860[0]
// Public signature debug description: toChar(){}kotlin.Char
@DeprecatedSinceKotlin(warningSince = "1.9", errorSince = "2.3")
/* fake */ override fun toChar(): Char
// CHECK JVM_IR:
// Mangled name: I#toDouble(){}kotlin.Double
// Public signature: /I.toDouble|-2422520430979869925[0]
// Public signature debug description: toDouble(){}kotlin.Double
/* fake */ override fun toDouble(): Double
// CHECK JVM_IR:
// Mangled name: I#toFloat(){}kotlin.Float
// Public signature: /I.toFloat|5566667750088681187[0]
// Public signature debug description: toFloat(){}kotlin.Float
abstract /* fake */ override fun toFloat(): Float
// CHECK JVM_IR:
// Mangled name: I#toInt(){}kotlin.Int
// Public signature: /I.toInt|-5424593704201214685[0]
// Public signature debug description: toInt(){}kotlin.Int
abstract /* fake */ override fun toInt(): Int
// CHECK JVM_IR:
// Mangled name: I#toLong(){}kotlin.Long
// Public signature: /I.toLong|5613274327741145669[0]
// Public signature debug description: toLong(){}kotlin.Long
override fun toLong(): Long
// CHECK JVM_IR:
// Mangled name: I#toShort(){}kotlin.Short
// Public signature: /I.toShort|-291365914034102706[0]
// Public signature debug description: toShort(){}kotlin.Short
override fun toShort(): Short
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I){}
// Public signature: /test|-1897371180652527268[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I): Unit