IR: fix "most specific" check in IrFakeOverrideBuilder

There were several problems with it:

1) `isMoreSpecific` should return true if a == b. Otherwise
   `isMoreSpecificThenAllOf` would never return true because it's always
   invoked with a collection that contains the candidate. K1 behaves
   similarly, `OverridingUtil.isMoreSpecific` returns true if a == b.
   So in fact, "more" should be understood as "not less" here.
2) `transitivelyMostSpecificMember` in `selectMostSpecificMember` was
   always equal to the first element, so `isMoreSpecific` was invoked
   with incorrect arguments.
3) At the end of `selectMostSpecificMember`, we selected the first
   candidate with the non-flexible return type, however only dynamic
   type was considered. We need to check `isFlexible` via type system
   instead.

 #KT-66120 Fixed
This commit is contained in:
Alexander Udalov
2024-03-01 14:13:04 +01:00
committed by Space Team
parent a08df1821f
commit 77b3f415a5
17 changed files with 32 additions and 2761 deletions
@@ -378,7 +378,7 @@ class IrFakeOverrideBuilder(
a: IrOverridableMember,
b: IrOverridableMember
): Boolean {
return a > b
return a >= b
}
// Based on compareTo from FirOverrideService.kt
@@ -458,20 +458,12 @@ class IrFakeOverrideBuilder(
}
val candidates = mutableListOf<FakeOverride>()
var transitivelyMostSpecific = overridables.first()
val transitivelyMostSpecificMember = transitivelyMostSpecific
for (overridable in overridables) {
if (isMoreSpecificThenAllOf(overridable, overridables)
) {
if (isMoreSpecificThenAllOf(overridable, overridables)) {
candidates.add(overridable)
}
if (isMoreSpecific(
overridable.override,
transitivelyMostSpecificMember.override
)
&& !isMoreSpecific(
transitivelyMostSpecificMember.override,
overridable.override
)
if (isMoreSpecific(overridable.override, transitivelyMostSpecific.override)
&& !isMoreSpecific(transitivelyMostSpecific.override, overridable.override)
) {
transitivelyMostSpecific = overridable
}
@@ -483,7 +475,7 @@ class IrFakeOverrideBuilder(
}
var firstNonFlexible: FakeOverride? = null
for (candidate in candidates) {
if (candidate.override.returnType !is IrDynamicType) {
if (!candidate.override.returnType.isFlexible()) {
firstNonFlexible = candidate
break
}
@@ -295,14 +295,14 @@ FILE fqName:<root> fileName:/1.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[EnhancedNullability] kotlin.String? [fake_override]
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:@[EnhancedNullability] kotlin.String [fake_override]
annotations:
Nullable(value = <null>)
NotNull(value = <null>)
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.String? declared in <root>.Java1
public abstract fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.Java2
public abstract fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.Java1
@@ -488,7 +488,7 @@ FILE fqName:<root> fileName:/1.kt
receiver: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
VAR name:k16 type:kotlin.String [val]
TYPE_OP type=kotlin.String origin=IMPLICIT_NOTNULL typeOperand=kotlin.String
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String? declared in <root>.H' type=@[EnhancedNullability] kotlin.String origin=null
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.String declared in <root>.H' type=@[EnhancedNullability] kotlin.String origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (s: @[FlexibleNullability] kotlin.String?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -210,10 +210,10 @@ class H : Java1, Java2, Java3 {
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.String?{EnhancedNullability}
// Public signature: /H.bar|7290041286951472444[0]
// Public signature debug description: bar(){}kotlin.String?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String?
// Mangled name: H#bar(){}kotlin.String{EnhancedNullability}
// Public signature: /H.bar|-4383985778696477509[0]
// Public signature debug description: bar(){}kotlin.String{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability String
// CHECK:
// Mangled name: H#foo(kotlin.String?){}
@@ -286,3 +286,4 @@ interface KotlinInterface2 {
// Public signature: /test|-2663909601123444132[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Unit
@@ -303,12 +303,12 @@ FILE fqName:<root> fileName:/1.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<*> [fake_override]
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun bar (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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
@@ -387,12 +387,12 @@ FILE fqName:<root> fileName:/1.kt
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<*> [fake_override]
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun bar (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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
@@ -637,7 +637,7 @@ FILE fqName:<root> fileName:/1.kt
<T>: kotlin.Nothing?
element: CONST Null type=kotlin.Nothing? value=null
VAR name:k7 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.G' type=kotlin.collections.List<kotlin.Any?> origin=null
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.G' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
@@ -645,7 +645,7 @@ FILE fqName:<root> fileName:/1.kt
<T>: kotlin.Nothing?
element: CONST Null type=kotlin.Nothing? value=null
VAR name:k8 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.H' type=kotlin.collections.List<kotlin.Any?> origin=null
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.H' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -1,409 +0,0 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1, Java3 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.collections.MutableList<kotlin.Any?>?
// Public signature: /A.bar|2549972836650137141[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>?
/* fake */ override fun bar(): MutableList<Any?>?
// CHECK:
// Mangled name: A#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /A.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java3 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.collections.MutableList<kotlin.Any?>?
// Public signature: /B.bar|2549972836650137141[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>?
override fun bar(): MutableList<Any?>?
// CHECK:
// Mangled name: B#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /B.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Java1, KotlinInterface {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /C.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
/* fake */ override fun bar(): List<Any?>
// CHECK:
// Mangled name: C#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /C.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /C.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
abstract /* fake */ override get(): List<Any?>
// CHECK:
// Mangled name: C#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /C.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
abstract /* fake */ override set(<set-?>: List<Any?>): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, KotlinInterface {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /D.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
override fun bar(): List<Any?>
// CHECK:
// Mangled name: D#foo(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /D.foo|-8908280896721730733[0]
// Public signature debug description: foo(kotlin.collections.List<kotlin.Any?>){}
override fun foo(a: List<Any?>): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /D.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
override get(): List<Any?>
// CHECK:
// Mangled name: D#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /D.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
override set(value: List<Any?>): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java1, Java2, 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#bar(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /E.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
/* fake */ override fun bar(): List<Any?>
// CHECK:
// Mangled name: E#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /E.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /E.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
abstract /* fake */ override get(): List<Any?>
// CHECK:
// Mangled name: E#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /E.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
abstract /* fake */ override set(<set-?>: List<Any?>): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, Java2, KotlinInterface {
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /F.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
override get
// CHECK:
// Mangled name: F#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /F.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
override set
// CHECK:
// Mangled name: F#<init>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /F.<init>|-5478500930078789428[0]
// Public signature debug description: <init>(kotlin.collections.List<kotlin.Any?>){}
constructor(a: List<Any?>) /* primary */
// CHECK:
// Mangled name: F#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /F.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /F.bar|2717899934593573586[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>
override fun bar(): MutableList<Any?>
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java1, KotlinInterface, KotlinInterface2 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#bar(){}kotlin.collections.List<*>
// Public signature: /G.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: G#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /G.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /G.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
abstract /* fake */ override get(): List<Any?>
// CHECK:
// Mangled name: G#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /G.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
abstract /* fake */ override set(<set-?>: List<Any?>): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, KotlinInterface, KotlinInterface2 {
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /H.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
override get
// CHECK:
// Mangled name: H#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /H.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
override set
// CHECK:
// Mangled name: H#<init>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /H.<init>|-5478500930078789428[0]
// Public signature debug description: <init>(kotlin.collections.List<kotlin.Any?>){}
constructor(a: List<Any?>) /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.collections.List<*>
// Public signature: /H.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: H#foo(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /H.foo|-8908280896721730733[0]
// Public signature debug description: foo(kotlin.collections.List<kotlin.Any?>){}
override fun foo(a: List<Any?>): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java1, Java2, 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#bar(){}kotlin.collections.MutableList<kotlin.Any?>?
// Public signature: /I.bar|2549972836650137141[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>?
/* fake */ override fun bar(): MutableList<Any?>?
// CHECK:
// Mangled name: I#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /I.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java1, Java2, 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#bar(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /J.bar|2717899934593573586[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>
override fun bar(): MutableList<Any?>
// CHECK:
// Mangled name: J#foo(kotlin.collections.MutableList<kotlin.Any?>){}
// Public signature: /J.foo|-988911284811620369[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>){}
override fun foo(a: MutableList<Any?>): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /KotlinInterface.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
abstract fun bar(): List<Any?>
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /KotlinInterface.foo|-8908280896721730733[0]
// Public signature debug description: foo(kotlin.collections.List<kotlin.Any?>){}
abstract fun foo(a: List<Any?>): Unit
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: List<Any?>
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /KotlinInterface.a.<get-a>|1236722346785329618[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<kotlin.Any?>
abstract get
// CHECK:
// Mangled name: KotlinInterface#<set-a>(kotlin.collections.List<kotlin.Any?>){}
// Public signature: /KotlinInterface.a.<set-a>|8524237986202439368[0]
// Public signature debug description: <set-a>(kotlin.collections.List<kotlin.Any?>){}
abstract set
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){}kotlin.collections.List<*>
// Public signature: /KotlinInterface2.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
abstract fun bar(): List<*>
// CHECK:
// Mangled name: KotlinInterface2#foo(kotlin.collections.List<*>){}
// Public signature: /KotlinInterface2.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
abstract fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: KotlinInterface2{}a
// Public signature: /KotlinInterface2.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: List<*>
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#<get-a>(){}kotlin.collections.List<*>
// Public signature: /KotlinInterface2.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
abstract get
// CHECK:
// Mangled name: KotlinInterface2#<set-a>(kotlin.collections.List<*>){}
// Public signature: /KotlinInterface2.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
abstract set
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J){}
// Public signature: /test|-6013363711736718138[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J): Unit
@@ -1,7 +1,5 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// FILE: Java1.java
import java.util.*;
@@ -1,882 +0,0 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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 <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.Java1
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:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.A'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.collections.MutableList<kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.A'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number> origin=null
<T>: kotlin.Number
elements: VARARG type=kotlin.Array<out kotlin.Number> varargElementType=kotlin.Number
CONST Double type=kotlin.Double value=1.1
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.A) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.A'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<out kotlin.Number> [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<in kotlin.Number> [fake_override]
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<*> [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]
$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:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<in kotlin.Number> [fake_override]
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<*> [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.C) returnType:kotlin.collections.MutableList<out kotlin.Number>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.C
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.C'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C, a:kotlin.collections.MutableList<out kotlin.Number>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<out kotlin.Number>
BLOCK_BODY
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]'
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>.Java2
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.Java2
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
public abstract fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?>? declared in <root>.Java2
public abstract fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.D'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number> origin=null
<T>: kotlin.Number
elements: VARARG type=kotlin.Array<out kotlin.Number> varargElementType=kotlin.Number
CONST Double type=kotlin.Double value=1.1
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
public abstract fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<kotlin.Number> [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.KotlinInterface
public abstract fun bar (): kotlin.collections.List<kotlin.Number> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<in kotlin.Number> [fake_override]
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<*> [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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>.KotlinInterface
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.KotlinInterface
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.KotlinInterface
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<kotlin.Number> [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.KotlinInterface
public abstract fun bar (): kotlin.collections.List<kotlin.Number> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<*> [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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>.KotlinInterface
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.KotlinInterface
public open fun hashCode (): kotlin.Int declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.KotlinInterface
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.collections.MutableList<in kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.F'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number> origin=null
<T>: kotlin.Number
elements: VARARG type=kotlin.Array<out kotlin.Number> varargElementType=kotlin.Number
CONST Int type=kotlin.Int value=1
FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.F, a:kotlin.collections.MutableList<in kotlin.Number>) returnType:kotlin.Unit
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<in kotlin.Number>
BLOCK_BODY
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <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>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <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>.Java2
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:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo2 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?
FUN FAKE_OVERRIDE name:foo3 visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?
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>.Java2
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.Java2
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
public abstract fun bar2 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.G'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number> origin=null
<T>: kotlin.Number
elements: VARARG type=kotlin.Array<out kotlin.Number> varargElementType=kotlin.Number
CONST Double type=kotlin.Double value=1.1
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Int>
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
public abstract fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Int?>? declared in <root>.Java2
public abstract fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G'
CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.G]
$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>.G'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.G]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Int> [fake_override]
overridden:
public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.G
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Number> [fake_override]
overridden:
public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.G
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.G) returnType:kotlin.collections.MutableList<kotlin.Int> [fake_override]
overridden:
public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.G
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>.G
$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>.G
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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>.G
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.MutableList<out kotlin.Number>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<out kotlin.Number>
BLOCK_BODY
FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.MutableList<in kotlin.Number>) returnType:kotlin.Unit
overridden:
public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<in kotlin.Number>
BLOCK_BODY
FUN name:foo3 visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.MutableList<*>) returnType:kotlin.Unit
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.G
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<*>
BLOCK_BODY
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface
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.Any
$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.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<out kotlin.Number>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:bar2 visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<in kotlin.Number>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:bar3 visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.MutableList<*>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.MutableList<out kotlin.Number>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<out kotlin.Number>
FUN name:foo2 visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.MutableList<in kotlin.Number>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<in kotlin.Number>
FUN name:foo3 visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.MutableList<*>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<*>
CLASS INTERFACE name:KotlinInterface2 modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface2
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.Any
$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.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
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.Any
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<kotlin.Number>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, a:kotlin.collections.List<kotlin.Number>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Number>
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) 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
BLOCK_BODY
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
element: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.A' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.A' type=kotlin.collections.MutableList<kotlin.Number> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
element: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.String> origin=null
<T>: kotlin.String
element: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.A' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.B' type=kotlin.collections.MutableList<out kotlin.Number> origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.B' type=kotlin.collections.MutableList<in kotlin.Number> origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.B' type=kotlin.collections.MutableList<*> origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.C' type=kotlin.collections.MutableList<out kotlin.Number> origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.D' type=kotlin.collections.MutableList<kotlin.Number> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.D' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
element: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Number> declared in <root>.E' type=kotlin.collections.MutableList<out kotlin.Number> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.E' type=kotlin.collections.MutableList<in kotlin.Number> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
element: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.String> origin=null
<T>: kotlin.String
element: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.E' type=kotlin.collections.MutableList<*> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.F' type=kotlin.collections.MutableList<in kotlin.Number> origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Int> origin=null
<T>: kotlin.Int
element: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number?> origin=null
<T>: kotlin.Number?
elements: VARARG type=kotlin.Array<out kotlin.Number?> varargElementType=kotlin.Number?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo2 (a: @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar2 (): kotlin.collections.MutableList<kotlin.Number> declared in <root>.G' type=kotlin.collections.MutableList<kotlin.Number> origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Nothing?> origin=null
<T>: kotlin.Nothing?
element: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CALL 'public final fun listOf <T> (element: T of kotlin.collections.listOf): kotlin.collections.List<T of kotlin.collections.listOf> declared in kotlin.collections' type=kotlin.collections.List<kotlin.String> origin=null
<T>: kotlin.String
element: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar3 (): kotlin.collections.MutableList<kotlin.Int> declared in <root>.G' type=kotlin.collections.MutableList<kotlin.Int> origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<out kotlin.Number>): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Int> origin=null
<T>: kotlin.Int
elements: VARARG type=kotlin.Array<out kotlin.Int> varargElementType=kotlin.Int
CONST Int type=kotlin.Int value=1
CALL 'public open fun foo2 (a: kotlin.collections.MutableList<in kotlin.Number>): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Number> origin=null
<T>: kotlin.Number
elements: VARARG type=kotlin.Array<out kotlin.Number> varargElementType=kotlin.Number
CONST Int type=kotlin.Int value=1
CALL 'public open fun foo3 (a: kotlin.collections.MutableList<*>): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CALL 'public final fun mutableListOf <T> (vararg elements: T of kotlin.collections.mutableListOf): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.String> origin=null
<T>: kotlin.String
elements: VARARG type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String
CONST String type=kotlin.String value=""
@@ -1,223 +0,0 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
override fun bar2(): MutableList<Number> {
return mutableListOf<Number>(elements = [1.1])
}
override fun bar3(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
}
class B : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<out Number> {
return mutableListOf<Int>(elements = [1])
}
override fun foo(a: MutableList<out Number>) {
}
}
class D : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
override fun bar2(): MutableList<Number> {
return mutableListOf<Number>(elements = [1.1])
}
override fun bar3(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
}
class E : Java1, KotlinInterface, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, KotlinInterface, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar2(): MutableList<in Number> {
return mutableListOf<Number>(elements = [1])
}
override fun foo2(a: MutableList<in Number>) {
}
}
abstract class G : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
override fun bar2(): MutableList<Number> {
return mutableListOf<Number>(elements = [1.1])
}
override fun bar3(): MutableList<Int> {
return mutableListOf<Int>(elements = [1])
}
}
class H : G {
constructor() /* primary */ {
super/*G*/()
/* <init>() */
}
override fun foo(a: MutableList<out Number>) {
}
override fun foo2(a: MutableList<in Number>) {
}
override fun foo3(a: MutableList<*>) {
}
}
interface KotlinInterface {
abstract fun bar(): MutableList<out Number>
abstract fun bar2(): MutableList<in Number>
abstract fun bar3(): MutableList<*>
abstract fun foo(a: MutableList<out Number>)
abstract fun foo2(a: MutableList<in Number>)
abstract fun foo3(a: MutableList<*>)
}
interface KotlinInterface2 {
abstract fun bar(): List<Number>
abstract fun foo(a: List<Number>)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H) {
a.foo(a = null)
a.foo(a = mutableListOf<Int>(elements = [1]))
a.foo(a = listOf<Int>(element = 1))
a.bar() /*~> Unit */
a.foo2(a = null)
a.foo2(a = mutableListOf<Number?>(elements = [null]))
a.foo2(a = mutableListOf<@FlexibleNullability Number?>(elements = [1.1]))
a.bar2() /*~> Unit */
a.foo3(a = null)
a.foo3(a = mutableListOf<Nothing?>(elements = [null]))
a.foo3(a = listOf<Nothing?>(element = null))
a.foo3(a = listOf<String>(element = ""))
a.bar3() /*~> Unit */
b.foo(a = null)
b.foo(a = mutableListOf<Int>(elements = [1]))
b.bar() /*~> Unit */
b.foo2(a = null)
b.foo2(a = mutableListOf<Number?>(elements = [null]))
b.foo2(a = mutableListOf<@FlexibleNullability Number?>(elements = [1.1]))
b.bar2() /*~> Unit */
b.foo3(a = null)
b.foo3(a = mutableListOf<Nothing?>(elements = [null]))
b.foo3(a = mutableListOf<String>(elements = [""]))
b.bar3() /*~> Unit */
c.foo(a = mutableListOf<Int>(elements = [1]))
c.bar() /*~> Unit */
d.foo(a = null)
d.foo(a = mutableListOf<Int>(elements = [1]))
d.bar() /*~> Unit */
d.foo2(a = null)
d.foo2(a = mutableListOf<Number?>(elements = [null]))
d.foo2(a = mutableListOf<@FlexibleNullability Number?>(elements = [1.1]))
d.bar2() /*~> Unit */
d.foo3(a = null)
d.foo3(a = mutableListOf<Nothing?>(elements = [null]))
d.foo3(a = mutableListOf<String>(elements = [""]))
d.bar3() /*~> Unit */
e.foo(a = null)
e.foo(a = mutableListOf<Int>(elements = [1]))
e.foo(a = listOf<Int>(element = 1))
e.bar() /*~> Unit */
e.foo2(a = null)
e.foo2(a = mutableListOf<Number?>(elements = [null]))
e.foo2(a = mutableListOf<@FlexibleNullability Number?>(elements = [1.1]))
e.bar2() /*~> Unit */
e.foo3(a = null)
e.foo3(a = mutableListOf<Nothing?>(elements = [null]))
e.foo3(a = listOf<Nothing?>(element = null))
e.foo3(a = listOf<String>(element = ""))
e.bar3() /*~> Unit */
f.foo2(a = mutableListOf<Number?>(elements = [null]))
f.bar2() /*~> Unit */
g.foo(a = null)
g.foo(a = mutableListOf<Int>(elements = [1]))
g.foo(a = listOf<Int>(element = 1))
g.bar() /*~> Unit */
g.foo2(a = null)
g.foo2(a = mutableListOf<Number?>(elements = [null]))
g.foo2(a = mutableListOf<@FlexibleNullability Number?>(elements = [1.1]))
g.bar2() /*~> Unit */
g.foo3(a = null)
g.foo3(a = mutableListOf<Nothing?>(elements = [null]))
g.foo3(a = listOf<Nothing?>(element = null))
g.foo3(a = listOf<String>(element = ""))
g.bar3() /*~> Unit */
h.foo(a = mutableListOf<Int>(elements = [1]))
h.foo2(a = mutableListOf<Number>(elements = [1]))
h.foo3(a = mutableListOf<String>(elements = [""]))
}
@@ -1,449 +0,0 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1, Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /A.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: A#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /A.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: A#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /A.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
// CHECK JVM_IR:
// Mangled name: A#bar(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /A.bar|5423197504340908737[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar(): MutableList<Int>
// CHECK JVM_IR:
// Mangled name: A#bar2(){}kotlin.collections.MutableList<kotlin.Number>
// Public signature: /A.bar2|2098999375857405603[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<kotlin.Number>
override fun bar2(): MutableList<Number>
// CHECK JVM_IR:
// Mangled name: A#bar3(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /A.bar3|-3223342350035860091[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar3(): MutableList<Int>
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, KotlinInterface {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.collections.MutableList<out|kotlin.Number>
// Public signature: /B.bar|-6846894645280055353[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<out|kotlin.Number>
/* fake */ override fun bar(): MutableList<out Number>
// CHECK JVM_IR:
// Mangled name: B#bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
// Public signature: /B.bar2|-1184869326883952177[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
/* fake */ override fun bar2(): MutableList<in Number>
// CHECK JVM_IR:
// Mangled name: B#bar3(){}kotlin.collections.MutableList<*>
// Public signature: /B.bar3|6150215183582372563[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>
/* fake */ override fun bar3(): MutableList<*>
// CHECK:
// Mangled name: B#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /B.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: B#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /B.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: B#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /B.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1, KotlinInterface {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
// Public signature: /C.bar2|-1184869326883952177[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
/* fake */ override fun bar2(): MutableList<in Number>
// CHECK JVM_IR:
// Mangled name: C#bar3(){}kotlin.collections.MutableList<*>
// Public signature: /C.bar3|6150215183582372563[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>
/* fake */ override fun bar3(): MutableList<*>
// CHECK:
// Mangled name: C#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /C.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: C#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /C.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.collections.MutableList<out|kotlin.Number>
// Public signature: /C.bar|-6846894645280055353[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<out|kotlin.Number>
override fun bar(): MutableList<out Number>
// CHECK:
// Mangled name: C#foo(kotlin.collections.MutableList<out|kotlin.Number>){}
// Public signature: /C.foo|1900973092292906747[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number>){}
override fun foo(a: MutableList<out Number>): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, Java2, KotlinInterface {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /D.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: D#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /D.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: D#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /D.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /D.bar|5423197504340908737[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar(): MutableList<Int>
// CHECK JVM_IR:
// Mangled name: D#bar2(){}kotlin.collections.MutableList<kotlin.Number>
// Public signature: /D.bar2|2098999375857405603[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<kotlin.Number>
override fun bar2(): MutableList<Number>
// CHECK JVM_IR:
// Mangled name: D#bar3(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /D.bar3|-3223342350035860091[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar3(): MutableList<Int>
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java1, KotlinInterface, KotlinInterface2 {
// CHECK:
// Mangled name: E#<init>(){}
// Public signature: /E.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: E#bar(){}kotlin.collections.List<kotlin.Number>
// Public signature: /E.bar|8044708431466238444[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Number>
/* fake */ override fun bar(): List<Number>
// CHECK JVM_IR:
// Mangled name: E#bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
// Public signature: /E.bar2|-1184869326883952177[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
/* fake */ override fun bar2(): MutableList<in Number>
// CHECK JVM_IR:
// Mangled name: E#bar3(){}kotlin.collections.MutableList<*>
// Public signature: /E.bar3|6150215183582372563[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>
/* fake */ override fun bar3(): MutableList<*>
// CHECK:
// Mangled name: E#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /E.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: E#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /E.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: E#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /E.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, KotlinInterface, KotlinInterface2 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.collections.List<kotlin.Number>
// Public signature: /F.bar|8044708431466238444[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Number>
/* fake */ override fun bar(): List<Number>
// CHECK JVM_IR:
// Mangled name: F#bar3(){}kotlin.collections.MutableList<*>
// Public signature: /F.bar3|6150215183582372563[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>
/* fake */ override fun bar3(): MutableList<*>
// CHECK:
// Mangled name: F#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /F.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: F#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /F.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
// CHECK JVM_IR:
// Mangled name: F#bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
// Public signature: /F.bar2|-1184869326883952177[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
override fun bar2(): MutableList<in Number>
// CHECK:
// Mangled name: F#foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
// Public signature: /F.foo2|-4029435458904947429[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
override fun foo2(a: MutableList<in Number>): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
abstract class G : Java1, Java2, Java3 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
// Public signature: /G.foo|8895686115223778012[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number?>?){}
/* fake */ override fun foo(a: MutableList<out Number?>?): Unit
// CHECK:
// Mangled name: G#foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
// Public signature: /G.foo2|-3601545727248628174[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number?>?){}
/* fake */ override fun foo2(a: MutableList<in Number?>?): Unit
// CHECK:
// Mangled name: G#foo3(kotlin.collections.MutableList<*>?){}
// Public signature: /G.foo3|4448794496598723802[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>?){}
/* fake */ override fun foo3(a: MutableList<*>?): Unit
// CHECK JVM_IR:
// Mangled name: G#bar(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /G.bar|5423197504340908737[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar(): MutableList<Int>
// CHECK JVM_IR:
// Mangled name: G#bar2(){}kotlin.collections.MutableList<kotlin.Number>
// Public signature: /G.bar2|2098999375857405603[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<kotlin.Number>
override fun bar2(): MutableList<Number>
// CHECK JVM_IR:
// Mangled name: G#bar3(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /G.bar3|-3223342350035860091[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<kotlin.Int>
override fun bar3(): MutableList<Int>
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : G {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /H.bar|5423197504340908737[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Int>
/* fake */ override fun bar(): MutableList<Int>
// CHECK JVM_IR:
// Mangled name: H#bar2(){}kotlin.collections.MutableList<kotlin.Number>
// Public signature: /H.bar2|2098999375857405603[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<kotlin.Number>
/* fake */ override fun bar2(): MutableList<Number>
// CHECK JVM_IR:
// Mangled name: H#bar3(){}kotlin.collections.MutableList<kotlin.Int>
// Public signature: /H.bar3|-3223342350035860091[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<kotlin.Int>
/* fake */ override fun bar3(): MutableList<Int>
// CHECK:
// Mangled name: H#foo(kotlin.collections.MutableList<out|kotlin.Number>){}
// Public signature: /H.foo|1900973092292906747[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number>){}
override fun foo(a: MutableList<out Number>): Unit
// CHECK:
// Mangled name: H#foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
// Public signature: /H.foo2|-4029435458904947429[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
override fun foo2(a: MutableList<in Number>): Unit
// CHECK:
// Mangled name: H#foo3(kotlin.collections.MutableList<*>){}
// Public signature: /H.foo3|3154747524743190267[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>){}
override fun foo3(a: MutableList<*>): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}kotlin.collections.MutableList<out|kotlin.Number>
// Public signature: /KotlinInterface.bar|-6846894645280055353[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<out|kotlin.Number>
abstract fun bar(): MutableList<out Number>
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
// Public signature: /KotlinInterface.bar2|-1184869326883952177[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number>
abstract fun bar2(): MutableList<in Number>
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar3(){}kotlin.collections.MutableList<*>
// Public signature: /KotlinInterface.bar3|6150215183582372563[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>
abstract fun bar3(): MutableList<*>
// CHECK:
// Mangled name: KotlinInterface#foo(kotlin.collections.MutableList<out|kotlin.Number>){}
// Public signature: /KotlinInterface.foo|1900973092292906747[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number>){}
abstract fun foo(a: MutableList<out Number>): Unit
// CHECK:
// Mangled name: KotlinInterface#foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
// Public signature: /KotlinInterface.foo2|-4029435458904947429[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number>){}
abstract fun foo2(a: MutableList<in Number>): Unit
// CHECK:
// Mangled name: KotlinInterface#foo3(kotlin.collections.MutableList<*>){}
// Public signature: /KotlinInterface.foo3|3154747524743190267[0]
// Public signature debug description: foo3(kotlin.collections.MutableList<*>){}
abstract fun foo3(a: MutableList<*>): Unit
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){}kotlin.collections.List<kotlin.Number>
// Public signature: /KotlinInterface2.bar|8044708431466238444[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Number>
abstract fun bar(): List<Number>
// CHECK:
// Mangled name: KotlinInterface2#foo(kotlin.collections.List<kotlin.Number>){}
// Public signature: /KotlinInterface2.foo|-1316865397397104720[0]
// Public signature debug description: foo(kotlin.collections.List<kotlin.Number>){}
abstract fun foo(a: List<Number>): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H){}
// Public signature: /test|-2663909601123444132[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H): Unit
@@ -1,8 +1,7 @@
// FIR_IDENTICAL
// TARGET_BACKEND: JVM
// FULL_JDK
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// FILE: Java1.java
import java.util.*;
@@ -219,12 +219,12 @@ FILE fqName:<root> fileName:/1.kt
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.Any [fake_override]
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun foo (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java1
public abstract fun foo (): kotlin.Int declared in <root>.KotlinInterface
public abstract fun foo (): kotlin.Any declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
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
@@ -278,12 +278,12 @@ FILE fqName:<root> fileName:/1.kt
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:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun foo (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java1
public abstract fun foo (): kotlin.Int declared in <root>.Java2
public abstract fun foo (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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
@@ -459,7 +459,7 @@ FILE fqName:<root> fileName:/1.kt
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
<set-?>: CONST Int type=kotlin.Int value=4
VAR name:k27 type:kotlin.Int [val]
CALL 'public abstract fun foo (): kotlin.Any declared in <root>.F' type=kotlin.Int origin=null
CALL 'public abstract fun foo (): kotlin.Int declared in <root>.F' type=kotlin.Int origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k28 type:kotlin.Unit [val]
CALL 'public abstract fun bar (o: kotlin.Int): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
@@ -480,7 +480,7 @@ FILE fqName:<root> fileName:/1.kt
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
<set-?>: CONST Int type=kotlin.Int value=4
VAR name:k32 type:kotlin.Int [val]
CALL 'public abstract fun foo (): @[FlexibleNullability] kotlin.Number? declared in <root>.G' type=kotlin.Int origin=null
CALL 'public abstract fun foo (): 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
VAR name:k33 type:kotlin.Unit [val]
CALL 'public abstract fun bar (o: kotlin.Int): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
@@ -1,299 +0,0 @@
// MODULE: separate
// MODULE: main
// FILE: 1.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
interface A : Java1, Java2 {
// CHECK:
// Mangled name: A#bar(kotlin.Any?){}
// Public signature: /A.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: A#bar(kotlin.Int){}
// Public signature: /A.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: A#foo(){}kotlin.Int
// Public signature: /A.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
interface B : SeparateModuleJava1, SeparateModuleJava2 {
// CHECK:
// Mangled name: B#bar(kotlin.Any?){}
// Public signature: /B.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: B#bar(kotlin.Int){}
// Public signature: /B.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: B#foo(){}kotlin.Int
// Public signature: /B.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
interface C : Java1, SeparateModuleJava2 {
// CHECK:
// Mangled name: C#bar(kotlin.Any?){}
// Public signature: /C.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: C#bar(kotlin.Int){}
// Public signature: /C.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: C#foo(){}kotlin.Int
// Public signature: /C.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
interface D : Java1, KotlinInterface {
// CHECK:
// Mangled name: D#bar(kotlin.Any?){}
// Public signature: /D.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: D#bar(kotlin.Int){}
// Public signature: /D.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: D#foo(){}kotlin.Int
// Public signature: /D.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: Int
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int
// Public signature: /D.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract /* fake */ override get(): Int
// CHECK:
// Mangled name: D#<set-a>(kotlin.Int){}
// Public signature: /D.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
interface E : Java1, KotlinInterface, SeparateModuleJava1 {
// CHECK:
// Mangled name: E#bar(kotlin.Any?){}
// Public signature: /E.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: E#bar(kotlin.Int){}
// Public signature: /E.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: E#foo(){}kotlin.Int
// Public signature: /E.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract /* fake */ override get(): Int
// CHECK:
// Mangled name: E#<set-a>(kotlin.Int){}
// Public signature: /E.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
interface F : Java1, KotlinInterface, KotlinInterface2 {
// CHECK:
// Mangled name: F#bar(kotlin.Any?){}
// Public signature: /F.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: F#bar(kotlin.Int){}
// Public signature: /F.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: F#foo(){}kotlin.Any
// Public signature: /F.foo|-9059697968601777418[0]
// Public signature debug description: foo(){}kotlin.Any
abstract /* fake */ override fun foo(): Any
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract /* fake */ override get(): Int
// CHECK:
// Mangled name: F#<set-a>(kotlin.Int){}
// Public signature: /F.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
interface G : Java1, Java2, Java3 {
// CHECK:
// Mangled name: G#bar(kotlin.Any?){}
// Public signature: /G.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: G#bar(kotlin.Int){}
// Public signature: /G.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK:
// Mangled name: G#bar(kotlin.Number?){}
// Public signature: /G.bar|-5187092956211237501[0]
// Public signature debug description: bar(kotlin.Number?){}
abstract /* fake */ override fun bar(o: Number?): Unit
// CHECK JVM_IR:
// Mangled name: G#foo(){}kotlin.Number?
// Public signature: /G.foo|-2818045260128305816[0]
// Public signature debug description: foo(){}kotlin.Number?
abstract /* fake */ override fun foo(): Number?
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#bar(kotlin.Int){}
// Public signature: /KotlinInterface.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: KotlinInterface#foo(){}kotlin.Int
// Public signature: /KotlinInterface.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract fun foo(): Int
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.Int
// Public signature: /KotlinInterface.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract get
// CHECK:
// Mangled name: KotlinInterface#<set-a>(kotlin.Int){}
// Public signature: /KotlinInterface.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract set
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK:
// Mangled name: KotlinInterface2#bar(kotlin.Any){}
// Public signature: /KotlinInterface2.bar|182691292061191550[0]
// Public signature debug description: bar(kotlin.Any){}
abstract fun bar(o: Any): Unit
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#foo(){}kotlin.Any
// Public signature: /KotlinInterface2.foo|-9059697968601777418[0]
// Public signature debug description: foo(){}kotlin.Any
abstract fun foo(): Any
// CHECK:
// Mangled name: KotlinInterface2{}a
// Public signature: /KotlinInterface2.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#<get-a>(){}kotlin.Int
// Public signature: /KotlinInterface2.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract get
// CHECK:
// Mangled name: KotlinInterface2#<set-a>(kotlin.Int){}
// Public signature: /KotlinInterface2.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract set
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G){}
// Public signature: /test|-3020703466980043959[0]
// Public signature debug description: test(A;B;C;D;E;F;G){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G): Unit
@@ -1,6 +1,4 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// MODULE: separate
// FILE: SeparateModuleJava1.java
@@ -434,12 +434,12 @@ FILE fqName:<root> fileName:/1.kt
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:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java3) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:kotlin.Int [fake_override]
overridden:
public abstract fun foo (): @[FlexibleNullability] kotlin.Any? declared in <root>.Java1
public abstract fun foo (): kotlin.Int declared in <root>.Java2
public abstract fun foo (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
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
@@ -726,7 +726,7 @@ FILE fqName:<root> fileName:/1.kt
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
<set-?>: CONST Int type=kotlin.Int value=4
VAR name:k42 type:kotlin.Int [val]
CALL 'public abstract fun foo (): @[FlexibleNullability] kotlin.Number? declared in <root>.I' type=kotlin.Int origin=null
CALL 'public abstract fun foo (): kotlin.Int declared in <root>.I' type=kotlin.Int origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
VAR name:k43 type:kotlin.Unit [val]
CALL 'public abstract fun bar (o: kotlin.Int): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
@@ -1,453 +0,0 @@
// MODULE: separate
// MODULE: main
// FILE: 1.kt
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1, Java2 {
// CHECK:
// Mangled name: A#<init>(){}
// Public signature: /A.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: A#bar(kotlin.Any?){}
// Public signature: /A.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: A#bar(kotlin.Int){}
// Public signature: /A.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: A#foo(){}kotlin.Int
// Public signature: /A.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : Java1, Java2 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#bar(kotlin.Any?){}
// Public signature: /B.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
abstract /* fake */ override fun bar(o: Any?): Unit
// CHECK JVM_IR:
// Mangled name: B#foo(){}kotlin.Int
// Public signature: /B.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
// CHECK:
// Mangled name: B#bar(kotlin.Int){}
// Public signature: /B.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : SeparateModuleJava1, SeparateModuleJava2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: C#bar(kotlin.Any?){}
// Public signature: /C.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: C#bar(kotlin.Int){}
// Public signature: /C.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: C#foo(){}kotlin.Int
// Public signature: /C.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1, SeparateModuleJava2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#bar(kotlin.Any?){}
// Public signature: /D.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: D#bar(kotlin.Int){}
// Public signature: /D.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: D#foo(){}kotlin.Int
// Public signature: /D.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java1, KotlinInterface {
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: Int
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Int
// Public signature: /E.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get
// CHECK:
// Mangled name: E#<set-a>(kotlin.Int){}
// Public signature: /E.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
override set
// CHECK:
// Mangled name: E#<init>(kotlin.Int){}
// Public signature: /E.<init>|-5182794243525578284[0]
// Public signature debug description: <init>(kotlin.Int){}
constructor(a: Int) /* primary */
// CHECK:
// Mangled name: E#bar(kotlin.Any?){}
// Public signature: /E.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: E#bar(kotlin.Int){}
// Public signature: /E.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: E#foo(){}kotlin.Int
// Public signature: /E.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
abstract class F : Java1, KotlinInterface {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#bar(kotlin.Int){}
// Public signature: /F.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK:
// Mangled name: F#bar(kotlin.Any?){}
// Public signature: /F.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK JVM_IR:
// Mangled name: F#foo(){}kotlin.Int
// Public signature: /F.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: Int
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Int
// Public signature: /F.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract /* fake */ override get(): Int
// CHECK:
// Mangled name: F#<set-a>(kotlin.Int){}
// Public signature: /F.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, KotlinInterface, SeparateModuleJava1 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#bar(kotlin.Any?){}
// Public signature: /G.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: G#bar(kotlin.Int){}
// Public signature: /G.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: G#foo(){}kotlin.Int
// Public signature: /G.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: Int
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Int
// Public signature: /G.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
override get(): Int
// CHECK:
// Mangled name: G#<set-a>(kotlin.Int){}
// Public signature: /G.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
override set(value: Int): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
abstract class H : Java1, KotlinInterface, SeparateModuleJava1 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#bar(kotlin.Int){}
// Public signature: /H.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: H#foo(){}kotlin.Int
// Public signature: /H.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract /* fake */ override fun foo(): Int
// CHECK:
// Mangled name: H#bar(kotlin.Any){}
// Public signature: /H.bar|182691292061191550[0]
// Public signature debug description: bar(kotlin.Any){}
override fun bar(o: Any): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract /* fake */ override var a: Int
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Int
// Public signature: /H.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract /* fake */ override get(): Int
// CHECK:
// Mangled name: H#<set-a>(kotlin.Int){}
// Public signature: /H.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract /* fake */ override set(<set-?>: Int): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
abstract class I : Java1, Java2, Java3 {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#bar(kotlin.Int){}
// Public signature: /I.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract /* fake */ override fun bar(o: Int): Unit
// CHECK:
// Mangled name: I#bar(kotlin.Number?){}
// Public signature: /I.bar|-5187092956211237501[0]
// Public signature debug description: bar(kotlin.Number?){}
abstract /* fake */ override fun bar(o: Number?): Unit
// CHECK JVM_IR:
// Mangled name: I#foo(){}kotlin.Number?
// Public signature: /I.foo|-2818045260128305816[0]
// Public signature debug description: foo(){}kotlin.Number?
abstract /* fake */ override fun foo(): Number?
// CHECK:
// Mangled name: I#bar(kotlin.Any?){}
// Public signature: /I.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java1, Java2, Java3 {
// CHECK:
// Mangled name: J#<init>(){}
// Public signature: /J.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: J#bar(kotlin.Any?){}
// Public signature: /J.bar|2391259649441243134[0]
// Public signature debug description: bar(kotlin.Any?){}
override fun bar(o: Any?): Unit
// CHECK:
// Mangled name: J#bar(kotlin.Int){}
// Public signature: /J.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
override fun bar(o: Int): Unit
// CHECK:
// Mangled name: J#bar(kotlin.Number?){}
// Public signature: /J.bar|-5187092956211237501[0]
// Public signature debug description: bar(kotlin.Number?){}
override fun bar(o: Number?): Unit
// CHECK JVM_IR:
// Mangled name: J#foo(){}kotlin.Int
// Public signature: /J.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
override fun foo(): Int
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK:
// Mangled name: KotlinInterface#bar(kotlin.Int){}
// Public signature: /KotlinInterface.bar|-6662241134515685168[0]
// Public signature debug description: bar(kotlin.Int){}
abstract fun bar(o: Int): Unit
// CHECK JVM_IR:
// Mangled name: KotlinInterface#foo(){}kotlin.Int
// Public signature: /KotlinInterface.foo|-1256155405684507276[0]
// Public signature debug description: foo(){}kotlin.Int
abstract fun foo(): Int
// CHECK:
// Mangled name: KotlinInterface{}a
// Public signature: /KotlinInterface.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: Int
// CHECK JVM_IR:
// Mangled name: KotlinInterface#<get-a>(){}kotlin.Int
// Public signature: /KotlinInterface.a.<get-a>|4232747788241509192[0]
// Public signature debug description: <get-a>(){}kotlin.Int
abstract get
// CHECK:
// Mangled name: KotlinInterface#<set-a>(kotlin.Int){}
// Public signature: /KotlinInterface.a.<set-a>|-6358787123203981221[0]
// Public signature debug description: <set-a>(kotlin.Int){}
abstract set
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK:
// Mangled name: KotlinInterface2#bar(kotlin.Any){}
// Public signature: /KotlinInterface2.bar|182691292061191550[0]
// Public signature debug description: bar(kotlin.Any){}
abstract fun bar(o: Any): Unit
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#foo(){}kotlin.Any
// Public signature: /KotlinInterface2.foo|-9059697968601777418[0]
// Public signature debug description: foo(){}kotlin.Any
abstract fun foo(): Any
// CHECK:
// Mangled name: KotlinInterface2{}a
// Public signature: /KotlinInterface2.a|-1200697420457237799[0]
// Public signature debug description: {}a
abstract var a: Any
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#<get-a>(){}kotlin.Any
// Public signature: /KotlinInterface2.a.<get-a>|2674885770872562036[0]
// Public signature debug description: <get-a>(){}kotlin.Any
abstract get
// CHECK:
// Mangled name: KotlinInterface2#<set-a>(kotlin.Any){}
// Public signature: /KotlinInterface2.a.<set-a>|-6749232401949477374[0]
// Public signature debug description: <set-a>(kotlin.Any){}
abstract set
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J){}
// Public signature: /test|-6013363711736718138[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J): Unit
@@ -1,6 +1,4 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// MODULE: separate
// FILE: SeparateModuleJava1.java
@@ -216,12 +216,12 @@ FILE fqName:<root> fileName:/1.kt
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2<R of <root>.F>) returnType:R of <root>.F [fake_override]
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface<R of <root>.F>) returnType:R of <root>.F [fake_override]
overridden:
public abstract fun foo (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun foo (): T of <root>.KotlinInterface declared in <root>.KotlinInterface
public abstract fun foo (): T of <root>.KotlinInterface2 declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2<R of <root>.F>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<R of <root>.F>
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