[Test] KT-61360: add tests for the IrFakeOverrideBuilder

Add tests for fake overrides with focus on java interoperability

Co-authored-by: Aleksandra Arsenteva <aleksandra.arsenteva@jetbrains.com>
This commit is contained in:
anzhela.sukhanova
2024-01-19 18:22:17 +02:00
committed by Space Team
parent 30aae741a6
commit 82255d5ee8
853 changed files with 269404 additions and 0 deletions
@@ -0,0 +1,138 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar?
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo?) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo?
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k4 type:kotlin.Nothing [val]
TYPE_OP type=kotlin.Nothing origin=IMPLICIT_NOTNULL typeOperand=kotlin.Nothing
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Nothing? origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k7 type:kotlin.Any? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Any? origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k8 type:kotlin.Nothing? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Nothing? origin=null
<T>: kotlin.Nothing
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing
$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 <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$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 <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
@@ -0,0 +1,42 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any> bar(): T? {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any> foo(a: T?) {
}
}
fun test(a: A, b: B) {
val k: Int = a.bar<@FlexibleNullability Int?>() /*!! Int */
val k2: Int? = a.bar<@FlexibleNullability Int?>()
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
val k4: Nothing = a.bar<@FlexibleNullability Nothing?>() /*!! Nothing */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<@FlexibleNullability Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int>()
val k7: Any? = b.bar<Any>()
val k8: Nothing? = b.bar<Nothing>()
b.foo<Int>(a = 1)
b.foo<Nothing>(a = null)
b.foo<Int>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,138 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar?
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo?) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo?
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k2 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k4 type:kotlin.Nothing [val]
TYPE_OP type=kotlin.Nothing origin=IMPLICIT_NOTNULL typeOperand=kotlin.Nothing
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Nothing? origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k7 type:kotlin.Any? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Any? origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k8 type:kotlin.Nothing? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar? declared in <root>.B' type=kotlin.Nothing? origin=null
<T>: kotlin.Nothing
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing
$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 <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$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 <T> (a: T of <root>.B.foo?): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
@@ -0,0 +1,41 @@
// TARGET_BACKEND: JVM
// FULL_JDK
// WITH_STDLIB
// FILE: Java1.java
public class Java1 {
public <T> void foo(T a) { }
public <T> T bar() {
return null;
}
}
// FILE: 1.kt
class A : Java1()
class B : Java1() {
override fun <T : Any> foo(a: T?) { }
override fun <T : Any> bar(): T? {
return null!!
}
}
fun test(a: A, b: B) {
val k: Int = a.bar()
val k2: Int? = a.bar()
val k3: Any = a.bar()
val k4: Nothing = a.bar()
a.foo(1)
a.foo(null)
a.foo<Int?>(null)
a.foo(listOf(null))
val k5: Int? = b.bar<Int>()
val k7: Any? = b.bar<Any>()
val k8: Nothing? = b.bar<Nothing>()
b.foo(1)
b.foo(null)
b.foo<Int>(null)
b.foo(listOf(null))
}
@@ -0,0 +1,42 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any> bar(): T? {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any> foo(a: T?) {
}
}
fun test(a: A, b: B) {
val k: Int = a.bar<@FlexibleNullability Int?>() /*!! Int */
val k2: Int? = a.bar<Int?>()
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
val k4: Nothing = a.bar<@FlexibleNullability Nothing?>() /*!! Nothing */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<@FlexibleNullability Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int>()
val k7: Any? = b.bar<Any>()
val k8: Nothing? = b.bar<Nothing>()
b.foo<Int>(a = 1)
b.foo<Nothing>(a = null)
b.foo<Int>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,53 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// 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(){0§<kotlin.Any?>}0:0?
// Public signature: /A.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: A#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /A.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){0§<kotlin.Any>}0:0?
// Public signature: /B.bar|-6715045277140170414[0]
// Public signature debug description: bar(){0§<kotlin.Any>}0:0?
override fun <T : Any> bar(): T?
// CHECK:
// Mangled name: B#foo(0:0?){0§<kotlin.Any>}
// Public signature: /B.foo|182402834467927776[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any>}
override fun <T : Any> foo(a: T?): Unit
}
// CHECK:
// Mangled name: #test(A;B){}
// Public signature: /test|-2533013708701322011[0]
// Public signature debug description: test(A;B){}
fun test(a: A, b: B): Unit
@@ -0,0 +1,246 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=1
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, t:kotlin.Int?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:t index:0 type:kotlin.Int?
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2<kotlin.Double>]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2<kotlin.Double>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2<kotlin.Double>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2<kotlin.Double>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java2<kotlin.Double>, t:@[FlexibleNullability] kotlin.Double?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2<kotlin.Double>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Double?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2<kotlin.Double>]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2<kotlin.Double>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Double
overridden:
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Double declared in <root>.D'
CONST Double type=kotlin.Double value=1.1
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, t:kotlin.Double) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:t index:0 type:kotlin.Double
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <U> ($this:<root>.Java3) returnType:@[FlexibleNullability] U of <root>.E.bar? [fake_override]
overridden:
public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Number?] reified:false
$this: VALUE_PARAMETER name:<this> type:<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>.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 <U> ($this:<root>.Java3, a:@[FlexibleNullability] U of <root>.E.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Number?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] U of <root>.E.foo?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <U> ($this:<root>.F) returnType:U of <root>.F.bar
overridden:
public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <U> (): U of <root>.F.bar declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <U> ($this:<root>.F, a:U of <root>.F.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:a index:0 type:U of <root>.F.foo
BLOCK_BODY
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) 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
BLOCK_BODY
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Int?): 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
t: 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.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.C' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: kotlin.Double): 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
t: 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 bar (): kotlin.Double declared in <root>.D' type=kotlin.Double origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<U>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.E.bar? declared in <root>.E' type=@[FlexibleNullability] kotlin.Int? origin=null
<U>: kotlin.Int
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <U> (a: U of <root>.F.foo): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<U>: kotlin.Double
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Double type=kotlin.Double value=2.2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar <U> (): U of <root>.F.bar declared in <root>.F' type=kotlin.Double origin=null
<U>: kotlin.Double
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,92 @@
class A : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class B : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
override fun bar(): Int {
return 1
}
override fun foo(t: Int?) {
}
}
abstract class C : Java2<Double> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class D : Java2<Double> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): Double {
return 1.1
}
override fun foo(t: Double) {
}
}
abstract class E : Java3 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun <U : Number> bar(): U {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <U : Number> foo(a: U) {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo(t = null)
a.foo(t = 1)
a.bar() /*~> Unit */
b.foo(t = null)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1.1)
c.bar() /*~> Unit */
d.foo(t = 1.1)
d.bar() /*~> Unit */
e.foo<@FlexibleNullability Int?>(a = 1)
e.bar<Int>() /*~> Unit */
f.foo<Double>(a = 2.2)
f.bar<Double>() /*~> Unit */
}
@@ -0,0 +1,246 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=1
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, t:kotlin.Int?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:t index:0 type:kotlin.Int?
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2<kotlin.Double>]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2<kotlin.Double>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2<kotlin.Double>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2<kotlin.Double>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <> ($this:<root>.Java2<kotlin.Double>, t:@[FlexibleNullability] kotlin.Double?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2<kotlin.Double>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Double?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2<kotlin.Double>]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2<kotlin.Double>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Double
overridden:
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Double declared in <root>.D'
CONST Double type=kotlin.Double value=1.1
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, t:kotlin.Double) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:t index:0 type:kotlin.Double
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java3]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <U> ($this:<root>.Java3) returnType:@[FlexibleNullability] U of <root>.E.bar? [fake_override]
overridden:
public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Number?] reified:false
$this: VALUE_PARAMETER name:<this> type:<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>.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 <U> ($this:<root>.Java3, a:@[FlexibleNullability] U of <root>.E.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Number?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] U of <root>.E.foo?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
CONSTRUCTOR visibility:public <> () returnType:<root>.F [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <U> ($this:<root>.F) returnType:U of <root>.F.bar
overridden:
public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <U> (): U of <root>.F.bar declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <U> ($this:<root>.F, a:U of <root>.F.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:U index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:a index:0 type:U of <root>.F.foo
BLOCK_BODY
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) 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
BLOCK_BODY
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Int?): 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
t: 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.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.C' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: kotlin.Double): 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
t: 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 bar (): kotlin.Double declared in <root>.D' type=kotlin.Double origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public abstract fun foo <U> (a: @[FlexibleNullability] U of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<U>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public abstract fun bar <U> (): @[FlexibleNullability] U of <root>.E.bar? declared in <root>.E' type=@[FlexibleNullability] kotlin.Int? origin=null
<U>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <U> (a: U of <root>.F.foo): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<U>: kotlin.Double
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Double type=kotlin.Double value=2.2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar <U> (): U of <root>.F.bar declared in <root>.F' type=kotlin.Double origin=null
<U>: kotlin.Double
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,67 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
public class Java1<T extends Number> {
public void foo(T t) { }
public T bar() {
return null;
}
}
// FILE: Java2.java
public interface Java2<T extends Number&Comparable> {
public void foo(T t);
public T bar();
}
// FILE: Java3.java
public interface Java3 {
<U extends Number> void foo(U a);
<U extends Number> U bar();
}
// FILE: 1.kt
class A: Java1<Int>()
class B : Java1<Int>() {
override fun bar(): Int {
return 1
}
override fun foo(t: Int?) {}
}
abstract class C : Java2<Double>
class D : Java2<Double> {
override fun foo(t: Double) { }
override fun bar(): Double {
return 1.1
}
}
abstract class E : Java3
class F : Java3 {
override fun <U : Number> foo(a: U) { }
override fun <U : Number> bar(): U {
return null!!
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo(null)
a.foo(1)
a.bar()
b.foo(null)
b.foo(1)
b.bar()
c.foo(null)
c.foo(1.1)
c.bar()
d.foo(1.1)
d.bar()
e.foo(1)
e.bar<Int>()
f.foo(2.2)
f.bar<Double>()
}
@@ -0,0 +1,92 @@
class A : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
}
class B : Java1<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
override fun bar(): Int {
return 1
}
override fun foo(t: Int?) {
}
}
abstract class C : Java2<Double> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class D : Java2<Double> {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): Double {
return 1.1
}
override fun foo(t: Double) {
}
}
abstract class E : Java3 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class F : Java3 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun <U : Number> bar(): U {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <U : Number> foo(a: U) {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo(t = null)
a.foo(t = 1)
a.bar() /*~> Unit */
b.foo(t = null)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1.1)
c.bar() /*~> Unit */
d.foo(t = 1.1)
d.bar() /*~> Unit */
e.foo<@FlexibleNullability Int?>(a = 1)
e.bar<@FlexibleNullability Int?>() /*~> Unit */
f.foo<Double>(a = 2.2)
f.bar<Double>() /*~> Unit */
}
@@ -0,0 +1,149 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1<Int> {
// 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.Int?
// Public signature: /A.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: A#foo(kotlin.Int?){}
// Public signature: /A.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1<Int> {
// 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.Int
// Public signature: /B.bar|-6436649210114349217[0]
// Public signature debug description: bar(){}kotlin.Int
override fun bar(): Int
// CHECK:
// Mangled name: B#foo(kotlin.Int?){}
// Public signature: /B.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Java2<Double> {
// 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.Double?
// Public signature: /C.bar|-682592564869870715[0]
// Public signature debug description: bar(){}kotlin.Double?
abstract /* fake */ override fun bar(): Double?
// CHECK:
// Mangled name: C#foo(kotlin.Double?){}
// Public signature: /C.foo|6411712553578757001[0]
// Public signature debug description: foo(kotlin.Double?){}
abstract /* fake */ override fun foo(t: Double?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2<Double> {
// 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.Double
// Public signature: /D.bar|1575612569485417103[0]
// Public signature debug description: bar(){}kotlin.Double
override fun bar(): Double
// CHECK:
// Mangled name: D#foo(kotlin.Double){}
// Public signature: /D.foo|7304084990235995798[0]
// Public signature debug description: foo(kotlin.Double){}
override fun foo(t: Double): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
abstract class E : Java3 {
// 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(){0§<kotlin.Number?>}0:0?
// Public signature: /E.bar|-8005972261054538665[0]
// Public signature debug description: bar(){0§<kotlin.Number?>}0:0?
abstract /* fake */ override fun <U : Number?> bar(): U?
// CHECK:
// Mangled name: E#foo(0:0?){0§<kotlin.Number?>}
// Public signature: /E.foo|-2766865864258916434[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Number?>}
abstract /* fake */ override fun <U : Number?> foo(a: U?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: F#bar(){0§<kotlin.Number>}0:0
// Public signature: /F.bar|-7641096877409049164[0]
// Public signature debug description: bar(){0§<kotlin.Number>}0:0
override fun <U : Number> bar(): U
// CHECK:
// Mangled name: F#foo(0:0){0§<kotlin.Number>}
// Public signature: /F.foo|-917731394899076103[0]
// Public signature debug description: foo(0:0){0§<kotlin.Number>}
override fun <U : Number> foo(a: U): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F){}
// Public signature: /test|-4390352378432875580[0]
// Public signature debug description: test(A;B;C;D;E;F){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F): Unit
@@ -0,0 +1,127 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C, a:kotlin.collections.List<*>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>?
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C) 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
BLOCK_BODY
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any> 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<kotlin.Any?>): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.List<*>?): 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: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.List<*>?): 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 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
@@ -0,0 +1,46 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: MutableList<Any?>) {
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>?) {
}
}
fun test(a: A, b: B, c: C) {
val k: List<Any?> = a.bar() /*!! @FlexibleMutability @RawType MutableList<Any?> */
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k2: List<Any> = b.bar()
b.foo(a = mutableListOf<Any?>(elements = [null]))
c.foo(a = null)
c.foo(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,136 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C, a:kotlin.collections.List<*>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C) 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
BLOCK_BODY
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<*> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<*>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any> declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any> 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<kotlin.Any?>): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.List<*>?): 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: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.List<*>?): 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 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
@@ -0,0 +1,37 @@
// TARGET_BACKEND: JVM
// FULL_JDK
// WITH_STDLIB
// FILE: Java1.java
import java.util.*;
public class Java1 {
public List a = new ArrayList();
public void foo(List a) {};
public List bar() { return null; };
}
// FILE: 1.kt
class A : Java1()
class B : Java1() {
override fun bar(): MutableList<Any> {
return null!!
}
override fun foo(a: MutableList<Any?>) { }
}
class C : Java1() {
override fun foo(a: List<*>?) { }
}
fun test(a: A, b: B, c: C){
val k: List<Any?> = a.bar()
a.foo(null)
a.foo(mutableListOf(null))
val k2: List<Any> = b.bar()
b.foo(mutableListOf(null))
c.foo(null)
c.foo(listOf(null))
}
@@ -0,0 +1,46 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: MutableList<Any?>) {
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>?) {
}
}
fun test(a: A, b: B, c: C) {
val k: List<Any?> = a.bar() /*!! List<*> */
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k2: List<Any> = b.bar()
b.foo(a = mutableListOf<Any?>(elements = [null]))
c.foo(a = null)
c.foo(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,77 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// 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 {
// 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|5265202103876197513[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|-988911284811620369[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]
class C : Java1 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.collections.MutableList<kotlin.Any?>?
// Public signature: /C.bar|2549972836650137141[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>?
/* fake */ override fun bar(): MutableList<Any?>?
// CHECK:
// Mangled name: C#foo(kotlin.collections.List<*>?){}
// Public signature: /C.foo|-5641538526074590102[0]
// Public signature debug description: foo(kotlin.collections.List<*>?){}
override fun foo(a: List<*>?): Unit
}
// CHECK:
// Mangled name: #test(A;B;C){}
// Public signature: /test|-4981009800298118531[0]
// Public signature debug description: test(A;B;C){}
fun test(a: A, b: B, c: C): Unit
@@ -0,0 +1,220 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? [fake_override]
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name: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
$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
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<in kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<*>
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<out kotlin.Number>?
BLOCK_BODY
FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.B, 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<in kotlin.Number>?
BLOCK_BODY
FUN name:foo3 visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<*>?) returnType:kotlin.Unit
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<*>?
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
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<@[FlexibleNullability] kotlin.Number?> origin=null
<T>: @[FlexibleNullability] kotlin.Number?
elements: VARARG type=kotlin.Array<out @[FlexibleNullability] kotlin.Number?> varargElementType=@[FlexibleNullability] kotlin.Number?
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 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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? 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 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.A' type=@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] 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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<out 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: kotlin.collections.MutableList<out 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: kotlin.collections.MutableList<in 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: kotlin.collections.MutableList<in 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: kotlin.collections.MutableList<in 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 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: 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: 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: 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
@@ -0,0 +1,65 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<out Number> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun bar2(): MutableList<in Number> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun bar3(): MutableList<*> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: MutableList<out Number>?) {
}
override fun foo2(a: MutableList<in Number>?) {
}
override fun foo3(a: MutableList<*>?) {
}
}
fun test(a: A, b: B) {
a.foo(a = null)
a.foo(a = mutableListOf<@FlexibleNullability Number?>(elements = [null]))
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<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 */
}
@@ -0,0 +1,220 @@
FILE fqName:<root> fileName:/test.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:bar2 visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? [fake_override]
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:bar3 visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? [fake_override]
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name: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
$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
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<out kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar2 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<in kotlin.Number>
overridden:
public open fun bar2 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar2 (): kotlin.collections.MutableList<in kotlin.Number> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:bar3 visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<*>
overridden:
public open fun bar3 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar3 (): kotlin.collections.MutableList<*> declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<out kotlin.Number>?
BLOCK_BODY
FUN name:foo2 visibility:public modality:OPEN <> ($this:<root>.B, 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
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<in kotlin.Number>?
BLOCK_BODY
FUN name:foo3 visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<*>?) returnType:kotlin.Unit
overridden:
public open fun foo3 (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<*>?
BLOCK_BODY
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
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.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 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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<out @[FlexibleNullability] kotlin.Number?>? 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 (): @[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] kotlin.Number?>? declared in <root>.A' type=@[FlexibleNullability] kotlin.collections.MutableList<in @[FlexibleNullability] 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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<*>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<out 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: kotlin.collections.MutableList<out 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: kotlin.collections.MutableList<in 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: kotlin.collections.MutableList<in 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: kotlin.collections.MutableList<in 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 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: 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: 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: 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
@@ -0,0 +1,69 @@
// TARGET_BACKEND: JVM
// FULL_JDK
// WITH_STDLIB
// FILE: Java1.java
import java.util.*;
public class Java1 {
public void foo(List<? extends Number> a) { }
public List<? extends Number> bar(){
return null;
}
public void foo2(List<? super Number> a) { }
public List<? super Number> bar2(){
return null;
}
public void foo3(List<?> a) {}
public List<?> bar3(){
return null;
}
}
// FILE: test.kt
class A : Java1()
class B: Java1(){
override fun foo(a: MutableList<out Number>?) { }
override fun bar(): MutableList<out Number> {
return null!!
}
override fun foo2(a: MutableList<in Number>?) { }
override fun bar2(): MutableList<in Number> {
return null!!
}
override fun foo3(a: MutableList<*>?) { }
override fun bar3(): MutableList<*> {
return null!!
}
}
fun test(a: A, b: B){
a.foo(null)
a.foo(mutableListOf(null))
a.foo(listOf(1))
a.bar()
a.foo2(null)
a.foo2(mutableListOf(null))
a.foo2(mutableListOf(1.1))
a.bar2()
a.foo3(null)
a.foo3(mutableListOf(null))
a.foo3(listOf(null))
a.foo3(listOf(""))
a.bar3()
b.foo(null)
b.foo(mutableListOf(1))
b.bar()
b.foo2(null)
b.foo2(mutableListOf(null))
b.foo2(mutableListOf(1.1))
b.bar2()
b.foo3(null)
b.foo3(mutableListOf(null))
b.foo3(mutableListOf(""))
b.bar3()
}
@@ -0,0 +1,65 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<out Number> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun bar2(): MutableList<in Number> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun bar3(): MutableList<*> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: MutableList<out Number>?) {
}
override fun foo2(a: MutableList<in Number>?) {
}
override fun foo3(a: MutableList<*>?) {
}
}
fun test(a: A, b: B) {
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
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<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 */
}
@@ -0,0 +1,101 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// 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<out|kotlin.Number?>?
// Public signature: /A.bar|-1979132587545372662[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<out|kotlin.Number?>?
/* fake */ override fun bar(): MutableList<out Number?>?
// CHECK JVM_IR:
// Mangled name: A#bar2(){}kotlin.collections.MutableList<in|kotlin.Number?>?
// Public signature: /A.bar2|-522329858505142422[0]
// Public signature debug description: bar2(){}kotlin.collections.MutableList<in|kotlin.Number?>?
/* fake */ override fun bar2(): MutableList<in Number?>?
// CHECK JVM_IR:
// Mangled name: A#bar3(){}kotlin.collections.MutableList<*>?
// Public signature: /A.bar3|-2809894317317056685[0]
// Public signature debug description: bar3(){}kotlin.collections.MutableList<*>?
/* fake */ override fun bar3(): MutableList<*>?
// 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:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.collections.MutableList<out|kotlin.Number>
// Public signature: /B.bar|-6846894645280055353[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<out|kotlin.Number>
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>
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<*>
override fun bar3(): MutableList<*>
// CHECK:
// Mangled name: B#foo(kotlin.collections.MutableList<out|kotlin.Number>?){}
// Public signature: /B.foo|-2620750387552673463[0]
// Public signature debug description: foo(kotlin.collections.MutableList<out|kotlin.Number>?){}
override fun foo(a: MutableList<out Number>?): Unit
// CHECK:
// Mangled name: B#foo2(kotlin.collections.MutableList<in|kotlin.Number>?){}
// Public signature: /B.foo2|9211158728843324018[0]
// Public signature debug description: foo2(kotlin.collections.MutableList<in|kotlin.Number>?){}
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<*>?){}
override fun foo3(a: MutableList<*>?): Unit
}
// CHECK:
// Mangled name: #test(A;B){}
// Public signature: /test|-2533013708701322011[0]
// Public signature debug description: test(A;B){}
fun test(a: A, b: B): Unit
@@ -0,0 +1,783 @@
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:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.A.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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 <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface) returnType:T of <root>.C.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.C.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.KotlinInterface2.bar declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER 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 <root>.Java2
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 <T> ($this:<root>.KotlinInterface, a:T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.C.foo
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2, a:T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.KotlinInterface2.foo): kotlin.Unit declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:T of <root>.C.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.D.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.KotlinInterface2.bar declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER 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 <root>.Java2
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:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.KotlinInterface2.foo): kotlin.Unit declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.D]
$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>.D'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.D]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.E.bar [fake_override]
overridden:
public open fun bar <T> (): T of <root>.D.bar declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
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>.D
$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 <T> ($this:<root>.D, a:T of <root>.E.foo) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.E.foo
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.E.foo) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.E.foo
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>.D
$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>.D
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.E) returnType:T of <root>.E.bar
overridden:
public abstract fun bar <T> (): T of <root>.D.bar declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.E.bar declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]
$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>.KotlinClass'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.F.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.KotlinClass.bar? declared in <root>.KotlinClass
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.KotlinClass
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.F.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.KotlinClass.foo?): kotlin.Unit declared in <root>.KotlinClass
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.F.foo?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]
$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>.KotlinClass'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <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>.KotlinClass
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.G.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.KotlinClass.foo?): kotlin.Unit declared in <root>.KotlinClass
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.G.foo?
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>.KotlinClass
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>.KotlinClass
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 <T> ($this:<root>.G) returnType:T of <root>.G.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.KotlinClass.bar? declared in <root>.KotlinClass
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.G.bar declared in <root>.G'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.H.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.Java3
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 <T> ($this:<root>.Java3, a:@[FlexibleNullability] T of <root>.H.foo?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.H.foo?
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>.Java3
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>.Java3
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.I.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.Java3
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java3
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>.Java3
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.I, a:T of <root>.I.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:a index:0 type:T of <root>.I.foo
BLOCK_BODY
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.J.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java4.bar? declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.J.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java4.foo?): kotlin.Unit declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.J.foo?
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.KotlinClass.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.KotlinClass.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.KotlinClass.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.L.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java4.bar? declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.L, a:T of <root>.L.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java4.foo?): kotlin.Unit declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.L
VALUE_PARAMETER name:a index:0 type:T of <root>.L.foo
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
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 <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.KotlinInterface2.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2, a:T of <root>.KotlinInterface2.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface2.foo
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, l:<root>.L) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:l index:10 type:<root>.L
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
CALL 'public open fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Int origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public abstract fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
CALL 'public abstract fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
VAR name:k11 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k12 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$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
VAR name:k13 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k14 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F 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
VAR name:k15 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.G.bar declared in <root>.G' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
VAR name:k16 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.G.bar declared in <root>.G' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k17 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.H.bar declared in <root>.H' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
VAR name:k18 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.H.bar declared in <root>.H' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H 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
VAR name:k19 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.I.bar declared in <root>.I' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
VAR name:k20 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.I.bar declared in <root>.I' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I 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
VAR name:k21 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.J.bar? declared in <root>.J' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
VAR name:k22 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.J.bar? declared in <root>.J' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: kotlin.Any
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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 foo <T> (a: T of <root>.L.foo): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
a: 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 <T> (): @[FlexibleNullability] T of <root>.L.bar? declared in <root>.L' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: kotlin.Int
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
@@ -0,0 +1,217 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
abstract class C : Java2, KotlinInterface2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
abstract class D : Java2, KotlinInterface2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Number> foo(a: T) {
}
override fun <T : Any?> foo(a: T) {
}
}
class E : D {
constructor() /* primary */ {
super/*D*/()
/* <init>() */
}
override fun <T : Number> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
class F : KotlinClass, Java2 {
constructor() /* primary */ {
super/*KotlinClass*/()
/* <init>() */
}
}
class G : KotlinClass, Java2 {
constructor() /* primary */ {
super/*KotlinClass*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
class H : Java3, Java2 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class I : Java3, Java2 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun <T : Any?> foo(a: T) {
}
}
class J : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
open class KotlinClass : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class L : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun <T : Any?> foo(a: T) {
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
interface KotlinInterface2 {
abstract fun <T : Number> bar(): T
abstract fun <T : Number> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l: L) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar<Any>()
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<@FlexibleNullability Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo<Int>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<Int?>(a = null)
c.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k11: Int? = e.bar<Int?>()
val k12: Any = e.bar<Any>()
e.foo<Int>(a = 1)
e.foo<Nothing?>(a = null)
e.foo<Int?>(a = null)
e.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k13: Int? = f.bar<Int?>()
val k14: Any = f.bar<Any>()
f.foo<@FlexibleNullability Int?>(a = 1)
f.foo<@FlexibleNullability Nothing?>(a = null)
f.foo<Int?>(a = null)
f.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k15: Int? = g.bar<Int?>()
val k16: Any = g.bar<Any>()
g.foo<@FlexibleNullability Int?>(a = 1)
g.foo<@FlexibleNullability Nothing?>(a = null)
g.foo<Int?>(a = null)
g.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k17: Int? = h.bar<Int?>()
val k18: Any = h.bar<Any>()
h.foo<@FlexibleNullability Int?>(a = 1)
h.foo<@FlexibleNullability Nothing?>(a = null)
h.foo<Int?>(a = null)
h.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k19: Int? = i.bar<Int?>()
val k20: Any = i.bar<Any>()
i.foo<Int>(a = 1)
i.foo<Nothing?>(a = null)
i.foo<Int?>(a = null)
i.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k21: Int? = j.bar<Int?>()
val k22: Any = j.bar<Any>() /*!! Any */
j.foo<@FlexibleNullability Int?>(a = 1)
j.foo<@FlexibleNullability Nothing?>(a = null)
j.foo<Int?>(a = null)
j.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
l.foo<Int>(a = 1)
l.bar<Int>() /*~> Unit */
}
@@ -0,0 +1,783 @@
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:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.A.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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 <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface) returnType:T of <root>.C.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.C.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.KotlinInterface2.bar declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER 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 <root>.Java2
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 <T> ($this:<root>.KotlinInterface, a:T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.C.foo
FUN FAKE_OVERRIDE name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2, a:T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.KotlinInterface2.foo): kotlin.Unit declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:T of <root>.C.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]
$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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.D.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.KotlinInterface2.bar declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER 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 <root>.Java2
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:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.KotlinInterface2.foo): kotlin.Unit declared in <root>.KotlinInterface2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.D]
$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>.D'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.D]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.E.bar [fake_override]
overridden:
public open fun bar <T> (): T of <root>.D.bar declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
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>.D
$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 <T> ($this:<root>.D, a:T of <root>.E.foo) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.E.foo
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.E.foo) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.E.foo
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>.D
$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>.D
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.E) returnType:T of <root>.E.bar
overridden:
public abstract fun bar <T> (): T of <root>.D.bar declared in <root>.D
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.E
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.E.bar declared in <root>.E'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]
$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>.KotlinClass'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.F.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.KotlinClass.bar? declared in <root>.KotlinClass
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.KotlinClass
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.F.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.KotlinClass.foo?): kotlin.Unit declared in <root>.KotlinClass
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.F.foo?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <root>.Java2]
$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>.KotlinClass'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.KotlinClass; <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>.KotlinClass
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.G.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.KotlinClass.foo?): kotlin.Unit declared in <root>.KotlinClass
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.G.foo?
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>.KotlinClass
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>.KotlinClass
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 <T> ($this:<root>.G) returnType:T of <root>.G.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.KotlinClass.bar? declared in <root>.KotlinClass
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.G
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.G.bar declared in <root>.G'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.H.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.Java3
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 <T> ($this:<root>.Java3, a:@[FlexibleNullability] T of <root>.H.foo?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.H.foo?
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>.Java3
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>.Java3
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java3; <root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.I.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.Java3
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java3
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>.Java3
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.I, a:T of <root>.I.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:a index:0 type:T of <root>.I.foo
BLOCK_BODY
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.J.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java4.bar? declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.J.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java4.foo?): kotlin.Unit declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.J.foo?
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.KotlinClass.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.KotlinClass.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.KotlinClass.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.L.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java4.bar? declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.L, a:T of <root>.L.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java4.foo?): kotlin.Unit declared in <root>.Java4
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.L
VALUE_PARAMETER name:a index:0 type:T of <root>.L.foo
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
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 <T> ($this:<root>.KotlinInterface2) returnType:T of <root>.KotlinInterface2.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface2, a:T of <root>.KotlinInterface2.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface2.foo
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, l:<root>.L) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:l index:10 type:<root>.L
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
CALL 'public open fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Int origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public abstract fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
CALL 'public abstract fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public abstract fun foo <T> (a: T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
VAR name:k11 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
VAR name:k12 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.E.foo): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$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
VAR name:k13 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
VAR name:k14 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F 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
VAR name:k15 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.G.bar declared in <root>.G' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
VAR name:k16 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.G.bar declared in <root>.G' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.G.foo?): kotlin.Unit declared in <root>.G' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k17 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.H.bar declared in <root>.H' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
VAR name:k18 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.H.bar declared in <root>.H' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.H.foo?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H 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
VAR name:k19 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.I.bar declared in <root>.I' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
VAR name:k20 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.I.bar declared in <root>.I' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: T of <root>.I.foo): kotlin.Unit declared in <root>.I' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I 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
VAR name:k21 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.J.bar? declared in <root>.J' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
VAR name:k22 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.J.bar? declared in <root>.J' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.J.foo?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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 foo <T> (a: T of <root>.L.foo): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
a: 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 <T> (): @[FlexibleNullability] T of <root>.L.bar? declared in <root>.L' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
@@ -0,0 +1,159 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
public class Java1 {
public <T> void foo(T a) { }
public <T> T bar() {
return null;
}
}
// FILE: Java2.java
public interface Java2 extends KotlinInterface { }
// FILE: Java3.java
public class Java3 extends Java1 {
@Override
public <T> void foo(T a) { }
@Override
public <T> T bar() {
return null;
}
}
// FILE: Java4.java
public class Java4 extends KotlinClass { }
// FILE: 1.kt
class A : Java1(), Java2 //Kotlin ← Java1, Java2 ← Kotlin2
class B : Java1(), Java2 {
override fun <T : Any?> bar(): T {
return null!!
}
override fun <T : Any?> foo(a: T) { }
}
abstract class C: Java2, KotlinInterface2 //Kotlin ← Java, Kotlin2 ← Kotlin3
abstract class D : Java2, KotlinInterface2 {
override fun <T : Number> foo(a: T) { }
override fun <T> bar(): T {
return null!!
}
override fun <T> foo(a: T) { }
}
class E : D() {
override fun <T : Number> bar(): T {
return null!!
}
}
class F : KotlinClass(), Java2 //Kotlin ← Java, Kotlin2 ← Java2, Kotlin3
class G : KotlinClass(), Java2 {
override fun <T : Any?> bar(): T {
return null!!
}
}
class H : Java3(), Java2 //Kotlin ← Java1, Java2 ← Java3, Kotlin2
class I : Java3(), Java2 {
override fun <T : Any?> foo(a: T) { }
}
class J : Java4() //Kotlin ← Java ← Kotlin ← Java
class L : Java4() {
override fun <T : Any?> foo(a: T) { }
}
interface KotlinInterface {
fun <T> foo(a: T)
fun <T> bar(): T
}
interface KotlinInterface2 {
fun <T: Number> foo(a: T)
fun <T: Number> bar(): T
}
open class KotlinClass : Java1()
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l:L) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar()
a.foo(1)
a.foo(null)
a.foo<Int?>(null)
a.foo(listOf(null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo(1)
b.foo(null)
b.foo<Int?>(null)
b.foo(listOf(null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo(1)
c.foo(null)
c.foo<Int?>(null)
c.foo(listOf(null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo(1)
d.foo(null)
d.foo<Int?>(null)
d.foo(listOf(null))
val k11: Int? = e.bar<Int?>()
val k12: Any = e.bar<Any>()
e.foo(1)
e.foo(null)
e.foo<Int?>(null)
e.foo(listOf(null))
val k13: Int? = f.bar<Int?>()
val k14: Any = f.bar<Any>()
f.foo(1)
f.foo(null)
f.foo<Int?>(null)
f.foo(listOf(null))
val k15: Int? = g.bar<Int?>()
val k16: Any = g.bar<Any>()
g.foo(1)
g.foo(null)
g.foo<Int?>(null)
g.foo(listOf(null))
val k17: Int? = h.bar<Int?>()
val k18: Any = h.bar<Any>()
h.foo(1)
h.foo(null)
h.foo<Int?>(null)
h.foo(listOf(null))
val k19: Int? = i.bar<Int?>()
val k20: Any = i.bar<Any>()
i.foo(1)
i.foo(null)
i.foo<Int?>(null)
i.foo(listOf(null))
val k21: Int? = j.bar<Int?>()
val k22: Any = j.bar<Any>()
j.foo(1)
j.foo(null)
j.foo<Int?>(null)
j.foo(listOf(null))
l.foo(1)
l.bar<Int>()
}
@@ -0,0 +1,217 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
abstract class C : Java2, KotlinInterface2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
abstract class D : Java2, KotlinInterface2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Number> foo(a: T) {
}
override fun <T : Any?> foo(a: T) {
}
}
class E : D {
constructor() /* primary */ {
super/*D*/()
/* <init>() */
}
override fun <T : Number> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
class F : KotlinClass, Java2 {
constructor() /* primary */ {
super/*KotlinClass*/()
/* <init>() */
}
}
class G : KotlinClass, Java2 {
constructor() /* primary */ {
super/*KotlinClass*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
class H : Java3, Java2 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class I : Java3, Java2 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun <T : Any?> foo(a: T) {
}
}
class J : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
open class KotlinClass : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class L : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun <T : Any?> foo(a: T) {
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
interface KotlinInterface2 {
abstract fun <T : Number> bar(): T
abstract fun <T : Number> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l: L) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar<Any>()
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<@FlexibleNullability Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo<Int>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<Int?>(a = null)
c.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k11: Int? = e.bar<Int?>()
val k12: Any = e.bar<Any>()
e.foo<Int>(a = 1)
e.foo<Nothing?>(a = null)
e.foo<Int?>(a = null)
e.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k13: Int? = f.bar<Int?>()
val k14: Any = f.bar<Any>()
f.foo<@FlexibleNullability Int?>(a = 1)
f.foo<Nothing?>(a = null)
f.foo<@FlexibleNullability Int?>(a = null)
f.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k15: Int? = g.bar<Int?>()
val k16: Any = g.bar<Any>()
g.foo<@FlexibleNullability Int?>(a = 1)
g.foo<Nothing?>(a = null)
g.foo<@FlexibleNullability Int?>(a = null)
g.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k17: Int? = h.bar<Int?>()
val k18: Any = h.bar<Any>()
h.foo<@FlexibleNullability Int?>(a = 1)
h.foo<Nothing?>(a = null)
h.foo<@FlexibleNullability Int?>(a = null)
h.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k19: Int? = i.bar<Int?>()
val k20: Any = i.bar<Any>()
i.foo<Int>(a = 1)
i.foo<Nothing?>(a = null)
i.foo<Int?>(a = null)
i.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k21: Int? = j.bar<@FlexibleNullability Int?>()
val k22: Any = j.bar<@FlexibleNullability Any?>() /*!! Any */
j.foo<@FlexibleNullability Int?>(a = 1)
j.foo<Nothing?>(a = null)
j.foo<@FlexibleNullability Int?>(a = null)
j.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
l.foo<Int>(a = 1)
l.bar<@FlexibleNullability Int?>() /*~> Unit */
}
@@ -0,0 +1,366 @@
// 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 JVM_IR:
// Mangled name: A#bar(){0§<kotlin.Any?>}0:0
// Public signature: /A.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: A#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /A.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /B.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: B#foo(0:0){0§<kotlin.Any?>}
// Public signature: /B.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
abstract class C : Java2, KotlinInterface2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /C.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
abstract /* fake */ override fun <T : Any?> bar(): T
// CHECK JVM_IR:
// Mangled name: C#bar(){0§<kotlin.Number>}0:0
// Public signature: /C.bar|-7641096877409049164[0]
// Public signature debug description: bar(){0§<kotlin.Number>}0:0
abstract /* fake */ override fun <T : Number> bar(): T
// CHECK:
// Mangled name: C#foo(0:0){0§<kotlin.Any?>}
// Public signature: /C.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
abstract /* fake */ override fun <T : Any?> foo(a: T): Unit
// CHECK:
// Mangled name: C#foo(0:0){0§<kotlin.Number>}
// Public signature: /C.foo|-917731394899076103[0]
// Public signature debug description: foo(0:0){0§<kotlin.Number>}
abstract /* fake */ override fun <T : Number> foo(a: T): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : Java2, KotlinInterface2 {
// 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(){0§<kotlin.Number>}0:0
// Public signature: /D.bar|-7641096877409049164[0]
// Public signature debug description: bar(){0§<kotlin.Number>}0:0
abstract /* fake */ override fun <T : Number> bar(): T
// CHECK JVM_IR:
// Mangled name: D#bar(){0§<kotlin.Any?>}0:0
// Public signature: /D.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: D#foo(0:0){0§<kotlin.Number>}
// Public signature: /D.foo|-917731394899076103[0]
// Public signature debug description: foo(0:0){0§<kotlin.Number>}
override fun <T : Number> foo(a: T): Unit
// CHECK:
// Mangled name: D#foo(0:0){0§<kotlin.Any?>}
// Public signature: /D.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : D {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /E.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: E#foo(0:0){0§<kotlin.Number>}
// Public signature: /E.foo|-917731394899076103[0]
// Public signature debug description: foo(0:0){0§<kotlin.Number>}
/* fake */ override fun <T : Number> foo(a: T): Unit
// CHECK:
// Mangled name: E#foo(0:0){0§<kotlin.Any?>}
// Public signature: /E.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T): Unit
// CHECK JVM_IR:
// Mangled name: E#bar(){0§<kotlin.Number>}0:0
// Public signature: /E.bar|-7641096877409049164[0]
// Public signature debug description: bar(){0§<kotlin.Number>}0:0
override fun <T : Number> bar(): T
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : KotlinClass, Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /F.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: F#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /F.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : KotlinClass, Java2 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: G#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /G.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
// CHECK JVM_IR:
// Mangled name: G#bar(){0§<kotlin.Any?>}0:0
// Public signature: /G.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java3, Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /H.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: H#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /H.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
@Override
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java3, Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /I.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: I#foo(0:0){0§<kotlin.Any?>}
// Public signature: /I.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java4 {
// 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(){0§<kotlin.Any?>}0:0?
// Public signature: /J.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: J#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /J.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass : Java1 {
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){0§<kotlin.Any?>}0:0?
// Public signature: /KotlinClass.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: KotlinClass#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /KotlinClass.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java4 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: L#bar(){0§<kotlin.Any?>}0:0?
// Public signature: /L.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: L#foo(0:0){0§<kotlin.Any?>}
// Public signature: /L.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){0§<kotlin.Any?>}0:0
// Public signature: /KotlinInterface.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
abstract fun <T : Any?> bar(): T
// CHECK:
// Mangled name: KotlinInterface#foo(0:0){0§<kotlin.Any?>}
// Public signature: /KotlinInterface.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
abstract fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: KotlinInterface2
// Public signature: /KotlinInterface2|null[0]
interface KotlinInterface2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){0§<kotlin.Number>}0:0
// Public signature: /KotlinInterface2.bar|-7641096877409049164[0]
// Public signature debug description: bar(){0§<kotlin.Number>}0:0
abstract fun <T : Number> bar(): T
// CHECK:
// Mangled name: KotlinInterface2#foo(0:0){0§<kotlin.Number>}
// Public signature: /KotlinInterface2.foo|-917731394899076103[0]
// Public signature debug description: foo(0:0){0§<kotlin.Number>}
abstract fun <T : Number> foo(a: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;L){}
// Public signature: /test|-5032873017181253992[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;L){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, l: L): Unit
@@ -0,0 +1,252 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]
$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>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
$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>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java3) returnType:@[FlexibleNullability] T of <root>.C.bar? [fake_override]
annotations:
Override
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<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>.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 <T> ($this:<root>.Java3, a:@[FlexibleNullability] T of <root>.C.foo?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.C.foo?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'a: T of <root>.D.foo declared in <root>.D.foo' type=T of <root>.D.foo origin=null
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.C.bar? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.C.bar? declared in <root>.C' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
@@ -0,0 +1,77 @@
abstract class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : A {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
println(message = a)
}
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<Int>() /*!! Int */
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<@FlexibleNullability Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>() /*!! Any */
c.foo<@FlexibleNullability Int?>(a = 1)
c.foo<@FlexibleNullability Nothing?>(a = null)
c.foo<Int?>(a = null)
c.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,252 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]
$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>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
$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>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java3) returnType:@[FlexibleNullability] T of <root>.C.bar? [fake_override]
annotations:
Override
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java3.bar? declared in <root>.Java3
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<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>.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 <T> ($this:<root>.Java3, a:@[FlexibleNullability] T of <root>.C.foo?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java3.foo?): kotlin.Unit declared in <root>.Java3
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.C.foo?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CALL 'public final fun println (message: kotlin.Any?): kotlin.Unit declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'a: T of <root>.D.foo declared in <root>.D.foo' type=T of <root>.D.foo origin=null
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.C.bar? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.C.bar? declared in <root>.C' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
@@ -0,0 +1,74 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
public class Java1 {
public <T> void foo(T a) { }
public <T> T bar() {
return null;
}
}
// FILE: Java2.java
public class Java2 extends Java1 { }
// FILE: Java3.java
public class Java3 extends Java1 {
@Override
public <T> void foo(T a) { }
@Override
public <T> T bar() {
return null;
}
}
// FILE: 1.kt
abstract class A : Java2() // Kotlin ← Java1 ← Java2
class B : A() {
override fun <T> bar(): T {
return null!!
}
override fun <T> foo(a: T) { }
}
class C : Java3() //Kotlin ← Java1(override) ← Java2
class D : Java1() {
override fun <T : Any?> bar(): T {
return null!!
}
override fun <T> foo(a: T) {
println(a)
}
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar()
a.foo(1)
a.foo(null)
a.foo<Int?>(null)
a.foo(listOf(null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo(1)
b.foo(null)
b.foo<Int?>(null)
b.foo(listOf(null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo(1)
c.foo(null)
c.foo<Int?>(null)
c.foo(listOf(null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo(1)
d.foo(null)
d.foo<Int?>(null)
d.foo(listOf(null))
}
@@ -0,0 +1,77 @@
abstract class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : A {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
println(message = a)
}
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<@FlexibleNullability Int?>() /*!! Int */
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<@FlexibleNullability Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<@FlexibleNullability Int?>()
val k8: Any = c.bar<@FlexibleNullability Any?>() /*!! Any */
c.foo<@FlexibleNullability Int?>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<@FlexibleNullability Int?>(a = null)
c.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,103 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : Java2 {
// 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(){0§<kotlin.Any?>}0:0?
// Public signature: /A.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: A#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /A.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : A {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /B.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: B#foo(0:0){0§<kotlin.Any?>}
// Public signature: /B.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java3 {
// 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(){0§<kotlin.Any?>}0:0?
// Public signature: /C.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
@Override
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: C#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /C.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
@Override
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /D.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: D#foo(0:0){0§<kotlin.Any?>}
// Public signature: /D.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D){}
// Public signature: /test|7656439746344069424[0]
// Public signature debug description: test(A;B;C;D){}
fun test(a: A, b: B, c: C, d: D): Unit
@@ -0,0 +1,270 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface) returnType:T of <root>.A.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.A.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.A.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]
$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>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
$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>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[EnhancedNullability] T of <root>.C.bar [fake_override]
annotations:
Override
overridden:
public open fun bar <T> (): @[EnhancedNullability] T of <root>.Java1.bar declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[EnhancedNullability] T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[EnhancedNullability] T of <root>.Java1.foo): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[EnhancedNullability] T of <root>.C.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[EnhancedNullability] T of <root>.Java1.bar declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[EnhancedNullability] T of <root>.Java1.foo): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
CALL 'public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Int origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
CALL 'public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[EnhancedNullability] T of <root>.C.bar declared in <root>.C' type=@[EnhancedNullability] kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[EnhancedNullability] T of <root>.C.bar declared in <root>.C' type=@[EnhancedNullability] kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
@@ -0,0 +1,83 @@
abstract class A : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : A {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar<Any>()
a.foo<Int>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>() /*!! Any */
c.foo<Int>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<Int?>(a = null)
c.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,270 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<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 kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:ABSTRACT visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface) returnType:T of <root>.A.bar [fake_override]
overridden:
public abstract fun bar <T> (): T of <root>.Java2.bar declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.A.foo) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo <T> (a: T of <root>.Java2.foo): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.A.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]
$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>.A'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.A]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.A
$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>.A
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C
CONSTRUCTOR visibility:public <> () returnType:<root>.C [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[EnhancedNullability] T of <root>.C.bar [fake_override]
annotations:
Override
overridden:
public open fun bar <T> (): @[EnhancedNullability] T of <root>.Java1.bar declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <T> ($this:<root>.Java1, a:@[EnhancedNullability] T of <root>.C.foo) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo <T> (a: @[EnhancedNullability] T of <root>.Java1.foo): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[EnhancedNullability] T of <root>.C.foo
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[EnhancedNullability] T of <root>.Java1.bar declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[EnhancedNullability] T of <root>.Java1.foo): kotlin.Unit declared in <root>.Java1
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
CALL 'public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Int origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
CALL 'public abstract fun bar <T> (): T of <root>.A.bar declared in <root>.A' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 abstract fun foo <T> (a: T of <root>.A.foo): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): @[EnhancedNullability] T of <root>.C.bar declared in <root>.C' type=@[EnhancedNullability] @[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[EnhancedNullability] T of <root>.C.bar declared in <root>.C' type=@[EnhancedNullability] @[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[EnhancedNullability] T of <root>.C.foo): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
@@ -0,0 +1,69 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
public class Java1 implements KotlinInterface {
@Override
public <T> void foo(T a) { }
@Override
public <T> T bar() {
return null;
}
}
// FILE: Java2.java
public interface Java2 extends KotlinInterface { }
// FILE: 1.kt
abstract class A : Java2 // Kotlin ← Java ← Kotlin
class B : A() {
override fun <T> bar(): T {
return null!!
}
override fun <T> foo(a: T) { }
}
class C : Java1() //Kotlin ← Java(override) ← Kotlin
class D : Java1() {
override fun <T : Any?> bar(): T {
return null!!
}
override fun <T> foo(a: T) { }
}
interface KotlinInterface {
fun <T> foo(a: T)
fun <T> bar(): T
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar()
a.foo(1)
a.foo(null)
a.foo<Int?>(null)
a.foo(listOf(null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo(1)
b.foo(null)
b.foo<Int?>(null)
b.foo(listOf(null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo(1)
c.foo(null)
c.foo<Int?>(null)
c.foo(listOf(null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo(1)
d.foo(null)
d.foo<Int?>(null)
d.foo(listOf(null))
}
@@ -0,0 +1,83 @@
abstract class A : Java2 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class B : A {
constructor() /* primary */ {
super/*A*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class C : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D) {
val k: Int = a.bar<Int>()
val k3: Any = a.bar<Any>()
a.foo<Int>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<@FlexibleNullability Int?>()
val k8: Any = c.bar<@FlexibleNullability Any?>() /*!! Any */
c.foo<Int>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<@FlexibleNullability Int?>(a = null)
c.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
}
@@ -0,0 +1,121 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
abstract class A : Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /A.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
abstract /* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: A#foo(0:0){0§<kotlin.Any?>}
// Public signature: /A.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
abstract /* fake */ override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : A {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /B.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: B#foo(0:0){0§<kotlin.Any?>}
// Public signature: /B.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java1 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){0§<kotlin.Any?>}0:0{EnhancedNullability}
// Public signature: /C.bar|6765732301291641606[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0{EnhancedNullability}
@Override
/* fake */ override fun <T : Any?> bar(): @EnhancedNullability T
// CHECK:
// Mangled name: C#foo(0:0{EnhancedNullability}){0§<kotlin.Any?>}
// Public signature: /C.foo|-2061655068181839688[0]
// Public signature debug description: foo(0:0{EnhancedNullability}){0§<kotlin.Any?>}
@Override
/* fake */ override fun <T : Any?> foo(a: @EnhancedNullability T): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java1 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /D.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: D#foo(0:0){0§<kotlin.Any?>}
// Public signature: /D.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){0§<kotlin.Any?>}0:0
// Public signature: /KotlinInterface.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
abstract fun <T : Any?> bar(): T
// CHECK:
// Mangled name: KotlinInterface#foo(0:0){0§<kotlin.Any?>}
// Public signature: /KotlinInterface.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
abstract fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D){}
// Public signature: /test|7656439746344069424[0]
// Public signature debug description: test(A;B;C;D){}
fun test(a: A, b: B, c: C, d: D): Unit
@@ -0,0 +1,482 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]
$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>.KotlinClass'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.KotlinClass? declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.KotlinClass
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, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.KotlinClass?): kotlin.Unit declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]
$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>.KotlinClass'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.KotlinClass? declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.KotlinClass
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.KotlinClass?): kotlin.Unit declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]
$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>.Java4'
<T>: kotlin.Any
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Any>, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] 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>.Java4
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>.Java4
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]
$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>.Java4'
<T>: kotlin.Any
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
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>.Java4
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>.Java4
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): kotlin.Any declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.Java5
$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>.KotlinInterface<kotlin.Any>, t:kotlin.Any) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: kotlin.Any): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Any
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): kotlin.Any declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.Java5
$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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.G, t:kotlin.Any) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: kotlin.Any): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:t index:0 type:kotlin.Any
BLOCK_BODY
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java2
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
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<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java2, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java2
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
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<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I, t:kotlin.Any) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:t index:0 type:kotlin.Any
BLOCK_BODY
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1<T of <root>.KotlinClass>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.KotlinClass>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass<T of <root>.KotlinClass> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.KotlinClass
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1<T of <root>.KotlinClass>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.KotlinClass>) returnType:@[FlexibleNullability] T of <root>.KotlinClass? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.KotlinClass>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.KotlinClass>, t:@[FlexibleNullability] T of <root>.KotlinClass?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.KotlinClass>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.KotlinClass?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
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<T of <root>.KotlinInterface>) returnType:T of <root>.KotlinInterface?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface<T of <root>.KotlinInterface>, t:T of <root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinInterface
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, h:<root>.H, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:h index:6 type:<root>.H
VALUE_PARAMETER name:i index:7 type:<root>.I
BLOCK_BODY
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: 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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.A' type=kotlin.Number origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Int? declared in <root>.B' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.D' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: @[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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.E' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
CALL 'public abstract fun foo (t: kotlin.Any): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Int? declared in <root>.F' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.H' type=kotlin.Number origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (t: kotlin.Number): 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.I' type=kotlin.Number origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,138 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
abstract class B : KotlinClass<Int>, Java3 {
constructor() /* primary */ {
super/*KotlinClass*/<Int>()
/* <init>() */
}
}
class C : KotlinClass<Int>, Java3 {
constructor() /* primary */ {
super/*KotlinClass*/<Int>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
abstract class D : Java4<Any>, Java3 {
constructor() /* primary */ {
super/*Java4*/<Any>()
/* <init>() */
}
}
class E : Java4<Any>, Java3 {
constructor() /* primary */ {
super/*Java4*/<Any>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
abstract class F : Java1<Int>, Java5 {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class G : Java1<Int>, Java5 {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
override fun foo(t: Any) {
}
}
class H : Java2, KotlinInterface<Any> {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class I : Java2, KotlinInterface<Any> {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(t: Any) {
}
}
open class KotlinClass<T> : Java1<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
}
interface KotlinInterface<T : Any> {
abstract fun bar(): T?
abstract fun foo(t: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, i: I) {
a.foo(t = 1)
a.foo(t = 1.1)
a.foo(t = null)
a.foo(t = "")
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = null)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = "")
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1.1)
e.foo(t = null)
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
h.foo(t = 2)
h.foo(t = "")
h.bar() /*~> Unit */
i.foo(t = 2)
i.foo(t = "")
i.bar() /*~> Unit */
}
@@ -0,0 +1,317 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java2 {
// 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.Number
// Public signature: /A.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: A#foo(kotlin.Number){}
// Public signature: /A.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: A#foo(kotlin.Any?){}
// Public signature: /A.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : KotlinClass<Int>, 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.Int?
// Public signature: /B.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: B#foo(kotlin.Any?){}
// Public signature: /B.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
abstract /* fake */ override fun foo(t: Any?): Unit
// CHECK:
// Mangled name: B#foo(kotlin.Int?){}
// Public signature: /B.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : KotlinClass<Int>, Java3 {
// 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.Int?
// Public signature: /C.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: C#foo(kotlin.Int?){}
// Public signature: /C.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: C#foo(kotlin.Any?){}
// Public signature: /C.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : Java4<Any>, Java3 {
// 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.Number?
// Public signature: /D.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: D#foo(kotlin.Number?){}
// Public signature: /D.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: D#foo(kotlin.Any?){}
// Public signature: /D.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java4<Any>, Java3 {
// 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.Number?
// Public signature: /E.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: E#foo(kotlin.Number?){}
// Public signature: /E.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: E#foo(kotlin.Any?){}
// Public signature: /E.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
abstract class F : Java1<Int>, Java5 {
// 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.Int?
// Public signature: /F.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: F#foo(kotlin.Any){}
// Public signature: /F.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
abstract /* fake */ override fun foo(t: Any): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Int?){}
// Public signature: /F.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1<Int>, Java5 {
// 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.Int?
// Public signature: /G.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: G#foo(kotlin.Int?){}
// Public signature: /G.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: G#foo(kotlin.Any){}
// Public signature: /G.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
override fun foo(t: Any): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java2, KotlinInterface<Any> {
// 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.Number
// Public signature: /H.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: H#foo(kotlin.Number){}
// Public signature: /H.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: H#foo(kotlin.Any?){}
// Public signature: /H.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java2, KotlinInterface<Any> {
// 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.Number
// Public signature: /I.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: I#foo(kotlin.Number){}
// Public signature: /I.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: I#foo(kotlin.Any){}
// Public signature: /I.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
override fun foo(t: Any): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass<T> : Java1<T> where T : Number, T : Comparable<T> {
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){}1:0?
// Public signature: /KotlinClass.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
/* fake */ override fun bar(): T?
// CHECK:
// Mangled name: KotlinClass#foo(1:0?){}
// Public signature: /KotlinClass.foo|-131141195414545503[0]
// Public signature debug description: foo(1:0?){}
/* fake */ override fun foo(t: T?): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface<T : Any> {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}1:0?
// Public signature: /KotlinInterface.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
abstract fun bar(): T?
// CHECK:
// Mangled name: KotlinInterface#foo(1:0){}
// Public signature: /KotlinInterface.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
abstract fun foo(t: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;H;I){}
// Public signature: /test|-8914767252028701820[0]
// Public signature debug description: test(A;B;C;D;E;F;H;I){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, i: I): Unit
@@ -0,0 +1,482 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <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>.Java2, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]
$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>.KotlinClass'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:ABSTRACT visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.KotlinClass? declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.KotlinClass
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, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.KotlinClass?): kotlin.Unit declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]
$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>.KotlinClass'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.KotlinClass<kotlin.Int>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.KotlinClass? declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.KotlinClass
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.KotlinClass?): kotlin.Unit declared in <root>.KotlinClass
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.KotlinClass
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>.KotlinClass
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.C, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.C
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]
$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>.Java4'
<T>: @[FlexibleNullability] kotlin.Any?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:ABSTRACT visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Any>, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] 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>.Java4
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>.Java4
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]
$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>.Java4'
<T>: @[FlexibleNullability] kotlin.Any?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
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>.Java4
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>.Java4
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:ABSTRACT visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): kotlin.Any? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.Java5
$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:@[RawType] <root>.KotlinInterface<kotlin.Any>, t:kotlin.Any) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (t: kotlin.Any): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinInterface<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Any
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): kotlin.Any? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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>.Java5
$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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.G, t:kotlin.Any) returnType:kotlin.Unit
overridden:
public abstract fun foo (t: kotlin.Any): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.G
VALUE_PARAMETER name:t index:0 type:kotlin.Any
BLOCK_BODY
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <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>.Java2, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java2; <root>.KotlinInterface<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <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:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
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>.Java2
public open fun toString (): kotlin.String declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.I, t:kotlin.Any) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Any?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
VALUE_PARAMETER name:t index:0 type:kotlin.Any
BLOCK_BODY
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1<T of <root>.KotlinClass>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.KotlinClass>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass<T of <root>.KotlinClass> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: @[FlexibleNullability] T of <root>.KotlinClass?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[<root>.Java1<T of <root>.KotlinClass>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.KotlinClass>) returnType:@[FlexibleNullability] T of <root>.KotlinClass? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.KotlinClass>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.KotlinClass>, t:@[FlexibleNullability] T of <root>.KotlinClass?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.KotlinClass>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.KotlinClass?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any] reified:false
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<T of <root>.KotlinInterface>) returnType:T of <root>.KotlinInterface?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface<T of <root>.KotlinInterface>, t:T of <root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinInterface
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, h:<root>.H, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:h index:6 type:<root>.H
VALUE_PARAMETER name:i index:7 type:<root>.I
BLOCK_BODY
CALL 'public open fun foo (t: @[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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: @[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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.A' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public abstract fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Int? declared in <root>.B' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.D' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: @[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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.E' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
CALL 'public abstract fun foo (t: kotlin.Any): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Int? declared in <root>.F' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.H' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Number?): 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.I' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
@@ -0,0 +1,93 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66067, KT-59138
// FILE: Java1.java
public class Java1<T extends Number> {
public void foo(T t) { }
public T bar() {
return null;
}
}
// FILE: Java2.java
public class Java2 extends KotlinClass {
public void foo(Object t) { }
}
// FILE: Java3.java
interface Java3 {
void foo(Object t) ;
}
// FILE: Java4.java
public class Java4<T> extends Java1<Number> {
public void foo(T t) { }
}
// FILE: Java5.java
interface Java5 extends KotlinInterface { }
// FILE: 1.kt
class A : Java2() // Kotlin ← Java ← Kotlin ← Java
abstract class B : KotlinClass<Int>(), Java3 // Kotlin ← Java, Kotlin2 ← Java2
class C : KotlinClass<Int>(), Java3 {
override fun foo(t: Any?) { }
}
abstract class D : Java4<Any>(), Java3 // Kotlin ← Java1, Java2 ← Java3
class E : Java4<Any>(), Java3 {
override fun foo(t: Any?) { }
}
abstract class F : Java1<Int>(), Java5 // Kotlin ← Java1, Java2 ← Kotlin2
class G : Java1<Int>(), Java5 {
override fun foo(t: Any) { }
}
class H : Java2(), KotlinInterface<Any> // Kotlin ← Java, Kotlin2 ← Kotlin3
class I: Java2(), KotlinInterface<Any> {
override fun foo(t: Any) { }
}
open class KotlinClass<T> : Java1<T>() where T: Number, T: Comparable<T>
interface KotlinInterface<T: Any>{
fun foo(t: T)
fun bar(): T?
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, i: I) {
a.foo(1)
a.foo(1.1)
a.foo(null)
a.foo("")
a.bar()
b.foo(1.2)
b.foo(null)
b.bar()
c.foo(null)
c.foo("")
c.foo(1)
c.bar()
d.foo(null)
d.foo(1)
d.bar()
e.foo(1.1)
e.foo(null)
e.bar()
f.foo(2)
f.foo("")
f.bar()
h.foo(2)
h.foo("")
h.bar()
i.foo(2)
i.foo("")
i.bar()
}
@@ -0,0 +1,138 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
abstract class B : KotlinClass<Int>, Java3 {
constructor() /* primary */ {
super/*KotlinClass*/<Int>()
/* <init>() */
}
}
class C : KotlinClass<Int>, Java3 {
constructor() /* primary */ {
super/*KotlinClass*/<Int>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
abstract class D : Java4<Any>, Java3 {
constructor() /* primary */ {
super/*Java4*/<@FlexibleNullability Any?>()
/* <init>() */
}
}
class E : Java4<Any>, Java3 {
constructor() /* primary */ {
super/*Java4*/<@FlexibleNullability Any?>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
abstract class F : Java1<Int>, Java5 {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
}
class G : Java1<Int>, Java5 {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
override fun foo(t: Any) {
}
}
class H : Java2, KotlinInterface<Any> {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class I : Java2, KotlinInterface<Any> {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(t: Any) {
}
}
open class KotlinClass<T> : Java1<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability T?>()
/* <init>() */
}
}
interface KotlinInterface<T : Any> {
abstract fun bar(): T?
abstract fun foo(t: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, i: I) {
a.foo(t = 1)
a.foo(t = 1.1)
a.foo(t = null)
a.foo(t = "")
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = null)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = "")
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1.1)
e.foo(t = null)
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
h.foo(t = 2)
h.foo(t = "")
h.bar() /*~> Unit */
i.foo(t = 2)
i.foo(t = "")
i.bar() /*~> Unit */
}
@@ -0,0 +1,317 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java2 {
// 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.Number?
// Public signature: /A.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: A#foo(kotlin.Any?){}
// Public signature: /A.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
// CHECK:
// Mangled name: A#foo(kotlin.Number?){}
// Public signature: /A.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
abstract class B : KotlinClass<Int>, 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.Int?
// Public signature: /B.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: B#foo(kotlin.Any?){}
// Public signature: /B.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
abstract /* fake */ override fun foo(t: Any?): Unit
// CHECK:
// Mangled name: B#foo(kotlin.Int?){}
// Public signature: /B.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : KotlinClass<Int>, Java3 {
// 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.Int?
// Public signature: /C.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: C#foo(kotlin.Int?){}
// Public signature: /C.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: C#foo(kotlin.Any?){}
// Public signature: /C.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
abstract class D : Java4<Any>, Java3 {
// 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.Number?
// Public signature: /D.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: D#foo(kotlin.Number?){}
// Public signature: /D.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: D#foo(kotlin.Any?){}
// Public signature: /D.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java4<Any>, Java3 {
// 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.Number?
// Public signature: /E.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: E#foo(kotlin.Number?){}
// Public signature: /E.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: E#foo(kotlin.Any?){}
// Public signature: /E.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
abstract class F : Java1<Int>, Java5 {
// 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.Int?
// Public signature: /F.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: F#foo(kotlin.Any){}
// Public signature: /F.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
abstract /* fake */ override fun foo(t: Any): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Int?){}
// Public signature: /F.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1<Int>, Java5 {
// 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.Int?
// Public signature: /G.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: G#foo(kotlin.Int?){}
// Public signature: /G.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: G#foo(kotlin.Any){}
// Public signature: /G.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
override fun foo(t: Any): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java2, KotlinInterface<Any> {
// 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.Number?
// Public signature: /H.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: H#foo(kotlin.Any?){}
// Public signature: /H.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
// CHECK:
// Mangled name: H#foo(kotlin.Number?){}
// Public signature: /H.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java2, KotlinInterface<Any> {
// 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.Number?
// Public signature: /I.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: I#foo(kotlin.Number?){}
// Public signature: /I.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: I#foo(kotlin.Any){}
// Public signature: /I.foo|-3585887913961670341[0]
// Public signature debug description: foo(kotlin.Any){}
override fun foo(t: Any): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass<T> : Java1<T> where T : Number, T : Comparable<T> {
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){}1:0?
// Public signature: /KotlinClass.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
/* fake */ override fun bar(): T?
// CHECK:
// Mangled name: KotlinClass#foo(1:0?){}
// Public signature: /KotlinClass.foo|-131141195414545503[0]
// Public signature debug description: foo(1:0?){}
/* fake */ override fun foo(t: T?): Unit
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface<T : Any> {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}1:0?
// Public signature: /KotlinInterface.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
abstract fun bar(): T?
// CHECK:
// Mangled name: KotlinInterface#foo(1:0){}
// Public signature: /KotlinInterface.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
abstract fun foo(t: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;H;I){}
// Public signature: /test|-8914767252028701820[0]
// Public signature debug description: test(A;B;C;D;E;F;H;I){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, h: H, i: I): Unit
@@ -0,0 +1,252 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Double?>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
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>.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<@[FlexibleNullability] kotlin.Double?>, t:@[FlexibleNullability] kotlin.Double?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Double?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Double?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]
$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>.Java4'
<T>: kotlin.Any
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Any>, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] 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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, t:kotlin.Number?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:t index:0 type:kotlin.Number?
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Double?>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E, t:kotlin.Double?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Double?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:t index:0 type:kotlin.Double?
BLOCK_BODY
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]
$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>.Java4'
<T>: kotlin.Any
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
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) 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
BLOCK_BODY
CALL 'public open fun foo (t: @[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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: @[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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.A' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.B' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.C' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: 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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.D' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.E' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.F' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,85 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class C : Java4<Any> {
constructor() /* primary */ {
super/*Java4*/<Any>()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(t: Number?) {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo(t: Double?) {
}
}
class F : Java4<Any> {
constructor() /* primary */ {
super/*Java4*/<Any>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo(t = 1)
a.foo(t = 1.1)
a.foo(t = null)
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = null)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = "")
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1.1)
e.foo(t = null)
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
}
@@ -0,0 +1,252 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <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:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Double?>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
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>.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<@[FlexibleNullability] kotlin.Double?>, t:@[FlexibleNullability] kotlin.Double?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Double?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Double?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]
$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>.Java4'
<T>: @[FlexibleNullability] kotlin.Any?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java4<kotlin.Any>, t:@[FlexibleNullability] kotlin.Any?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] 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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, t:kotlin.Number?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:t index:0 type:kotlin.Number?
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Double?>) returnType:@[FlexibleNullability] kotlin.Double? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Double?>
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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.E, t:kotlin.Double?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Double?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.E
VALUE_PARAMETER name:t index:0 type:kotlin.Double?
BLOCK_BODY
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]
$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>.Java4'
<T>: @[FlexibleNullability] kotlin.Any?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java4<kotlin.Any>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<@[FlexibleNullability] kotlin.Number?>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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<@[FlexibleNullability] kotlin.Number?>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Number?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<@[FlexibleNullability] kotlin.Number?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, t:kotlin.Any?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java4?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:t index:0 type:kotlin.Any?
BLOCK_BODY
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) 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
BLOCK_BODY
CALL 'public open fun foo (t: @[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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: @[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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: @[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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.A' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.B' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.C' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: 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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.D' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: kotlin.Double?): 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
t: CONST Double type=kotlin.Double value=1.1
CALL 'public open fun foo (t: kotlin.Double?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Double? declared in <root>.E' type=@[FlexibleNullability] kotlin.Double? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: kotlin.Any?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] kotlin.Number? declared in <root>.F' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
@@ -0,0 +1,72 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
public class Java1<T extends Number> {
public void foo(T t) { }
public T bar() {
return null;
}
}
// FILE: Java2.java
public class Java2 extends Java1 { }
// FILE: Java3.java
public class Java3 extends Java1<Double> { }
// FILE: Java4.java
public class Java4<T> extends Java1<Number> {
public void foo(T t) { }
}
// FILE: Java6.java
public class Java6 extends KotlinClass2 {
@Override
public void foo(Number t) {}
@Override
public Number bar() {
return null;
}
}
// FILE: 1.kt
class A : Java2()
class B : Java3()
class C : Java4<Any>()
class D : Java2() {
override fun foo(t: Number?) { }
}
class E : Java3() {
override fun foo(t: Double?) { }
}
class F : Java4<Any>() {
override fun foo(t: Any?) { }
}
fun test(a: A, b: B, c : C, d: D, e: E, f: F) {
a.foo(1)
a.foo(1.1)
a.foo(null)
a.bar()
b.foo(1.2)
b.foo(null)
b.bar()
c.foo(null)
c.foo("")
c.foo(1)
c.bar()
d.foo(null)
d.foo(1)
d.bar()
e.foo(1.1)
e.foo(null)
e.bar()
f.foo(2)
f.foo("")
f.bar()
}
@@ -0,0 +1,85 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class C : Java4<Any> {
constructor() /* primary */ {
super/*Java4*/<@FlexibleNullability Any?>()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun foo(t: Number?) {
}
}
class E : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun foo(t: Double?) {
}
}
class F : Java4<Any> {
constructor() /* primary */ {
super/*Java4*/<@FlexibleNullability Any?>()
/* <init>() */
}
override fun foo(t: Any?) {
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
a.foo(t = 1)
a.foo(t = 1.1)
a.foo(t = null)
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = null)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = "")
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1.1)
e.foo(t = null)
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
}
@@ -0,0 +1,161 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java2 {
// 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.Number?
// Public signature: /A.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: A#foo(kotlin.Number?){}
// Public signature: /A.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : 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.Double?
// Public signature: /B.bar|-682592564869870715[0]
// Public signature debug description: bar(){}kotlin.Double?
/* fake */ override fun bar(): Double?
// CHECK:
// Mangled name: B#foo(kotlin.Double?){}
// Public signature: /B.foo|6411712553578757001[0]
// Public signature debug description: foo(kotlin.Double?){}
/* fake */ override fun foo(t: Double?): Unit
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java4<Any> {
// 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.Number?
// Public signature: /C.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: C#foo(kotlin.Number?){}
// Public signature: /C.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: C#foo(kotlin.Any?){}
// Public signature: /C.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
/* fake */ override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.Number?
// Public signature: /D.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: D#foo(kotlin.Number?){}
// Public signature: /D.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
override fun foo(t: Number?): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3 {
// 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.Double?
// Public signature: /E.bar|-682592564869870715[0]
// Public signature debug description: bar(){}kotlin.Double?
/* fake */ override fun bar(): Double?
// CHECK:
// Mangled name: E#foo(kotlin.Double?){}
// Public signature: /E.foo|6411712553578757001[0]
// Public signature debug description: foo(kotlin.Double?){}
override fun foo(t: Double?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java4<Any> {
// 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.Number?
// Public signature: /F.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: F#foo(kotlin.Number?){}
// Public signature: /F.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Any?){}
// Public signature: /F.foo|-6211124056249407422[0]
// Public signature debug description: foo(kotlin.Any?){}
override fun foo(t: Any?): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F){}
// Public signature: /test|-4390352378432875580[0]
// Public signature debug description: test(A;B;C;D;E;F){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F): Unit
@@ -0,0 +1,652 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<kotlin.Any>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<kotlin.Any>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, t:kotlin.Number) returnType:kotlin.Unit
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:t index:0 type:kotlin.Number
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int?
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int? declared in <root>.D'
CONST Int type=kotlin.Int value=6
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java2) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]
$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>.Java3'
<T>: kotlin.String
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:@[EnhancedNullability] kotlin.Number [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
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>.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>.Java3<kotlin.String>, t:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]
$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>.Java3'
<T>: kotlin.String
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:@[EnhancedNullability] kotlin.Number [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
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>.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>.Java3<kotlin.String>, t:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.String?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, t:kotlin.Number) returnType:kotlin.Unit
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:t index:0 type:kotlin.Number
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<kotlin.Any>) returnType:kotlin.Number [fake_override]
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<kotlin.Any>
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>.Java4
$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>.KotlinClass2<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]'
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>.Java4
$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>.KotlinClass2<kotlin.Any>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<kotlin.Any>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Number
overridden:
public open fun bar (): kotlin.Number declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.H'
CONST Int type=kotlin.Int value=1
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java4) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java4
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
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>.Java5
$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>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
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>.Java5
$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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, t:kotlin.Int?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:t index:0 type:kotlin.Int?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java5) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.Java5
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:@[EnhancedNullability] kotlin.Number [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
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>.Java6
$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>.Java6, t:@[EnhancedNullability] kotlin.Number) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
VALUE_PARAMETER name:t index:0 type:@[EnhancedNullability] kotlin.Number
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>.Java6
$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>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
PROPERTY name:a visibility:public modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass? visibility:private [final]
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>) returnType:T of <root>.KotlinClass?
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): T of <root>.KotlinClass? declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass? visibility:private [final]' type=T of <root>.KotlinClass? origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass<T of <root>.KotlinClass> declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass<T of <root>.KotlinClass> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass<T of <root>.KotlinClass> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>) returnType:T of <root>.KotlinClass?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): T of <root>.KotlinClass? declared in <root>.KotlinClass'
CALL 'public open fun <get-a> (): T of <root>.KotlinClass? declared in <root>.KotlinClass' type=T of <root>.KotlinClass? origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.KotlinClass<T of <root>.KotlinClass> declared in <root>.KotlinClass.bar' type=<root>.KotlinClass<T of <root>.KotlinClass> origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>, t:T of <root>.KotlinClass) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinClass
BLOCK_BODY
CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.KotlinClass2>] reified:false
PROPERTY name:a visibility:public modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass2? visibility:private [final]
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>) returnType:T of <root>.KotlinClass2?
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass2? visibility:private [final]' type=T of <root>.KotlinClass2? origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass2<T of <root>.KotlinClass2> declared in <root>.KotlinClass2.<get-a>' type=<root>.KotlinClass2<T of <root>.KotlinClass2> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass2<T of <root>.KotlinClass2> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>) returnType:T of <root>.KotlinClass2?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2'
CALL 'public open fun <get-a> (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2' type=T of <root>.KotlinClass2? origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.KotlinClass2<T of <root>.KotlinClass2> declared in <root>.KotlinClass2.bar' type=<root>.KotlinClass2<T of <root>.KotlinClass2> origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>, t:T of <root>.KotlinClass2) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinClass2
BLOCK_BODY
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java6]'
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>.Java6
$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>.Java6, t:@[EnhancedNullability] kotlin.Number) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
VALUE_PARAMETER name:t index:0 type:@[EnhancedNullability] kotlin.Number
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>.Java6
$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>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Number
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.L'
CONST Int type=kotlin.Int value=4
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:kotlin.Number [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
VALUE_PARAMETER name:l index:11 type:<root>.L
BLOCK_BODY
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: 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
t: 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 bar (): kotlin.Number declared in <root>.A' type=kotlin.Number origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: 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
t: 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.Number declared in <root>.B' type=kotlin.Number origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int? declared in <root>.C' type=kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int? declared in <root>.D' type=kotlin.Int? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.String?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.E' type=@[EnhancedNullability] kotlin.Number origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.String?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Number declared in <root>.F' type=@[EnhancedNullability] kotlin.Number origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.G' type=kotlin.Number origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.H' type=kotlin.Number origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
CALL 'public open fun foo (t: kotlin.Int?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Int?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
t: 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.Int? declared in <root>.J' type=kotlin.Int? origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
t: 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 (): @[EnhancedNullability] kotlin.Number declared in <root>.K' type=@[EnhancedNullability] kotlin.Number origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
t: CONST Int type=kotlin.Int value=4
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.L' type=kotlin.Number origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
@@ -0,0 +1,202 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(t: Number) {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): Int? {
return 6
}
}
class E : Java3<String> {
constructor() /* primary */ {
super/*Java3*/<String>()
/* <init>() */
}
}
class F : Java3<String> {
constructor() /* primary */ {
super/*Java3*/<String>()
/* <init>() */
}
override fun foo(t: Number) {
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun bar(): Number {
return 1
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo(t: Int?) {
}
}
class K : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
open class KotlinClass<T : Number> {
open val a: T?
field = null
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): T? {
return <this>.<get-a>()
}
open fun foo(t: T) {
}
}
open class KotlinClass2<T> where T : Number, T : Comparable<T> {
open val a: T?
field = null
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): T? {
return <this>.<get-a>()
}
open fun foo(t: T) {
}
}
class L : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun bar(): Number {
return 4
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L) {
a.foo(t = 1)
a.foo(t = 1.1)
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1)
e.foo(t = "")
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
g.foo(t = 2)
g.bar() /*~> Unit */
h.foo(t = 2)
h.bar() /*~> Unit */
i.foo(t = 2)
i.bar() /*~> Unit */
j.foo(t = null)
j.foo(t = 1)
j.bar() /*~> Unit */
k.foo(t = 1)
k.bar() /*~> Unit */
l.foo(t = 4)
l.bar() /*~> Unit */
}
@@ -0,0 +1,510 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// 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.Number
// Public signature: /A.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: A#foo(kotlin.Number){}
// Public signature: /A.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Number
// Public signature: /A.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.Number
// Public signature: /B.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: B#foo(kotlin.Number){}
// Public signature: /B.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
override fun foo(t: Number): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Number
// Public signature: /B.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.Int?
// Public signature: /C.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: C#foo(kotlin.Int?){}
// Public signature: /C.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int?
// Public signature: /C.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(kotlin.Int?){}
// Public signature: /D.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.Int?
// Public signature: /D.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
override fun bar(): Int?
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int?
// Public signature: /D.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3<String> {
// 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.Number{EnhancedNullability}
// Public signature: /E.bar|1590939005184243154[0]
// Public signature debug description: bar(){}kotlin.Number{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Number
// CHECK:
// Mangled name: E#foo(kotlin.String?){}
// Public signature: /E.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(t: String?): Unit
// CHECK:
// Mangled name: E#foo(kotlin.Number){}
// Public signature: /E.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Number
// Public signature: /E.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3<String> {
// 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.Number{EnhancedNullability}
// Public signature: /F.bar|1590939005184243154[0]
// Public signature debug description: bar(){}kotlin.Number{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Number
// CHECK:
// Mangled name: F#foo(kotlin.String?){}
// Public signature: /F.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(t: String?): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Number){}
// Public signature: /F.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
override fun foo(t: Number): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Number
// Public signature: /F.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// 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.Number
// Public signature: /G.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
/* fake */ override fun bar(): Number
// CHECK:
// Mangled name: G#foo(kotlin.Number){}
// Public signature: /G.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Number
// Public signature: /G.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(kotlin.Number){}
// Public signature: /H.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.Number
// Public signature: /H.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
override fun bar(): Number
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Number
// Public signature: /H.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// 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.Int?
// Public signature: /I.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: I#foo(kotlin.Int?){}
// Public signature: /I.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: I#<get-a>(){}kotlin.Int?
// Public signature: /I.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java5 {
// 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.Int?
// Public signature: /J.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: J#foo(kotlin.Int?){}
// Public signature: /J.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int?
// Public signature: /J.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : Java6 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: K#bar(){}kotlin.Number{EnhancedNullability}
// Public signature: /K.bar|1590939005184243154[0]
// Public signature debug description: bar(){}kotlin.Number{EnhancedNullability}
@Override
/* fake */ override fun bar(): @EnhancedNullability Number
// CHECK:
// Mangled name: K#foo(kotlin.Number{EnhancedNullability}){}
// Public signature: /K.foo|7903144043962862909[0]
// Public signature debug description: foo(kotlin.Number{EnhancedNullability}){}
@Override
/* fake */ override fun foo(t: @EnhancedNullability Number): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Number
// Public signature: /K.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass<T : Number> {
// CHECK:
// Mangled name: KotlinClass{}a
// Public signature: /KotlinClass.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: T?
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-a>(){}1:0?
// Public signature: /KotlinClass.a.<get-a>|-8320407562288984615[0]
// Public signature debug description: <get-a>(){}1:0?
open get
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){}1:0?
// Public signature: /KotlinClass.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
open fun bar(): T?
// CHECK:
// Mangled name: KotlinClass#foo(1:0){}
// Public signature: /KotlinClass.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
open fun foo(t: T): Unit
}
// CHECK:
// Mangled name: KotlinClass2
// Public signature: /KotlinClass2|null[0]
open class KotlinClass2<T> where T : Number, T : Comparable<T> {
// CHECK:
// Mangled name: KotlinClass2{}a
// Public signature: /KotlinClass2.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: T?
// CHECK JVM_IR:
// Mangled name: KotlinClass2#<get-a>(){}1:0?
// Public signature: /KotlinClass2.a.<get-a>|-8320407562288984615[0]
// Public signature debug description: <get-a>(){}1:0?
open get
// CHECK:
// Mangled name: KotlinClass2#<init>(){}
// Public signature: /KotlinClass2.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass2#bar(){}1:0?
// Public signature: /KotlinClass2.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
open fun bar(): T?
// CHECK:
// Mangled name: KotlinClass2#foo(1:0){}
// Public signature: /KotlinClass2.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
open fun foo(t: T): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java6 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(kotlin.Number{EnhancedNullability}){}
// Public signature: /L.foo|7903144043962862909[0]
// Public signature debug description: foo(kotlin.Number{EnhancedNullability}){}
@Override
/* fake */ override fun foo(t: @EnhancedNullability Number): Unit
// CHECK JVM_IR:
// Mangled name: L#bar(){}kotlin.Number
// Public signature: /L.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
override fun bar(): Number
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Number
// Public signature: /L.a.<get-a>|-5418543833660929450[0]
// Public signature debug description: <get-a>(){}kotlin.Number
/* fake */ override get(): Number
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K;L){}
// Public signature: /test|-3655539743967648908[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K;L){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L): Unit
@@ -0,0 +1,652 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1]
$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]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
overridden:
public open fun bar (): kotlin.Number? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$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:@[RawType] <root>.KotlinClass<kotlin.Number>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.B
CONSTRUCTOR visibility:public <> () returnType:<root>.B [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
overridden:
public open fun bar (): kotlin.Number? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, t:kotlin.Number) returnType:kotlin.Unit
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:t index:0 type:kotlin.Number
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D
CONSTRUCTOR visibility:public <> () returnType:<root>.D [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.Int?
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int? declared in <root>.D'
CONST Int type=kotlin.Int value=6
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<@[FlexibleNullability] kotlin.Int?>
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]
$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>.Java3'
<T>: @[FlexibleNullability] kotlin.String?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:@[EnhancedNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
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>.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>.Java3<kotlin.String>, t:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.String?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]
$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>.Java3'
<T>: @[FlexibleNullability] kotlin.String?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java3<kotlin.String>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3<kotlin.String>) returnType:@[EnhancedNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
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>.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>.Java3<kotlin.String>, t:@[FlexibleNullability] kotlin.String?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3<kotlin.String>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.String?
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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.F, t:kotlin.Number) returnType:kotlin.Unit
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:t index:0 type:kotlin.Number
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass<kotlin.Number>
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass2<kotlin.Number>) returnType:kotlin.Number? [fake_override]
overridden:
public open fun bar (): kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java4
$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:@[RawType] <root>.KotlinClass2<kotlin.Number>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass2<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]
$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>.Java4'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java4]'
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>.Java4
$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:@[RawType] <root>.KotlinClass2<kotlin.Number>, t:kotlin.Number) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: kotlin.Number): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:kotlin.Number
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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.Number
overridden:
public open fun bar (): kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.H'
CONST Int type=kotlin.Int value=1
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass2<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
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>.Java5
$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>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java5'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java5]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
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>.Java5
$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>.Java5
$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>.Java5
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, t:kotlin.Int?) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] kotlin.Int?): kotlin.Unit declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:t index:0 type:kotlin.Int?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Int?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>) returnType:kotlin.Int? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Int? declared in <root>.Java5
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<@[FlexibleNullability] kotlin.Int?>
CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.K
CONSTRUCTOR visibility:public <> () returnType:<root>.K [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:K modality:FINAL visibility:public superTypes:[<root>.Java6]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java6) returnType:@[EnhancedNullability] kotlin.Number? [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
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>.Java6
$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>.Java6, t:@[EnhancedNullability] kotlin.Number) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
VALUE_PARAMETER name:t index:0 type:@[EnhancedNullability] kotlin.Number
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>.Java6
$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>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass2<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<kotlin.Number>
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number] reified:false
PROPERTY name:a visibility:public modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass? visibility:private [final]
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>) returnType:T of <root>.KotlinClass?
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): T of <root>.KotlinClass? declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass? visibility:private [final]' type=T of <root>.KotlinClass? origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass<T of <root>.KotlinClass> declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass<T of <root>.KotlinClass> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass<T of <root>.KotlinClass> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>) returnType:T of <root>.KotlinClass?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): T of <root>.KotlinClass? declared in <root>.KotlinClass'
CALL 'public open fun <get-a> (): T of <root>.KotlinClass? declared in <root>.KotlinClass' type=T of <root>.KotlinClass? origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.KotlinClass<T of <root>.KotlinClass> declared in <root>.KotlinClass.bar' type=<root>.KotlinClass<T of <root>.KotlinClass> origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass<T of <root>.KotlinClass>, t:T of <root>.KotlinClass) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass<T of <root>.KotlinClass>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinClass
BLOCK_BODY
CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.KotlinClass2>] reified:false
PROPERTY name:a visibility:public modality:OPEN [val]
FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass2? visibility:private [final]
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>) returnType:T of <root>.KotlinClass2?
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [val]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:T of <root>.KotlinClass2? visibility:private [final]' type=T of <root>.KotlinClass2? origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass2<T of <root>.KotlinClass2> declared in <root>.KotlinClass2.<get-a>' type=<root>.KotlinClass2<T of <root>.KotlinClass2> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass2<T of <root>.KotlinClass2> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass2 modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>) returnType:T of <root>.KotlinClass2?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2'
CALL 'public open fun <get-a> (): T of <root>.KotlinClass2? declared in <root>.KotlinClass2' type=T of <root>.KotlinClass2? origin=GET_PROPERTY
$this: GET_VAR '<this>: <root>.KotlinClass2<T of <root>.KotlinClass2> declared in <root>.KotlinClass2.bar' type=<root>.KotlinClass2<T of <root>.KotlinClass2> origin=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass2<T of <root>.KotlinClass2>, t:T of <root>.KotlinClass2) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass2<T of <root>.KotlinClass2>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinClass2
BLOCK_BODY
CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java6]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.L
CONSTRUCTOR visibility:public <> () returnType:<root>.L [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java6'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:L modality:FINAL visibility:public superTypes:[<root>.Java6]'
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>.Java6
$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>.Java6, t:@[EnhancedNullability] kotlin.Number) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.Java6
VALUE_PARAMETER name:t index:0 type:@[EnhancedNullability] kotlin.Number
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>.Java6
$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>.Java6
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.L) returnType:kotlin.Number
overridden:
public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:<root>.L
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.L'
CONST Int type=kotlin.Int value=4
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open a: kotlin.Number?
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:@[RawType] <root>.KotlinClass2<kotlin.Number>) returnType:kotlin.Number? [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,val]
overridden:
public open fun <get-a> (): kotlin.Number? declared in <root>.Java6
$this: VALUE_PARAMETER name:<this> type:@[RawType] <root>.KotlinClass2<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, i:<root>.I, j:<root>.J, k:<root>.K, l:<root>.L) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
VALUE_PARAMETER name:k index:10 type:<root>.K
VALUE_PARAMETER name:l index:11 type:<root>.L
BLOCK_BODY
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: 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
t: 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 bar (): kotlin.Number? declared in <root>.A' type=kotlin.Number? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: 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
t: CONST Double type=kotlin.Double value=1.2
CALL 'public open fun foo (t: 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
t: 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.Number? declared in <root>.B' type=kotlin.Number? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int? declared in <root>.C' type=kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int? declared in <root>.D' type=kotlin.Int? origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.String?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.E' type=@[EnhancedNullability] kotlin.Number? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.String?): 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
t: CONST String type=kotlin.String value=""
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[EnhancedNullability] kotlin.Number? declared in <root>.F' type=@[EnhancedNullability] kotlin.Number? origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number? declared in <root>.G' type=kotlin.Number? origin=null
$this: GET_VAR 'g: <root>.G declared in <root>.test' type=<root>.G origin=null
CALL 'public open fun foo (t: 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.H' type=kotlin.Number origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
CALL 'public open fun foo (t: kotlin.Int?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: kotlin.Int?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
t: 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.Int? declared in <root>.J' type=kotlin.Int? origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
CALL 'public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.K' type=kotlin.Unit origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
t: 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 (): @[EnhancedNullability] kotlin.Number? declared in <root>.K' type=@[EnhancedNullability] kotlin.Number? origin=null
$this: GET_VAR 'k: <root>.K declared in <root>.test' type=<root>.K origin=null
CALL 'public open fun foo (t: @[EnhancedNullability] kotlin.Number): kotlin.Unit declared in <root>.L' type=kotlin.Unit origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
t: CONST Int type=kotlin.Int value=4
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.L' type=kotlin.Number origin=null
$this: GET_VAR 'l: <root>.L declared in <root>.test' type=<root>.L origin=null
@@ -0,0 +1,126 @@
// TARGET_BACKEND: JVM
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-59138, KT-66048, KT-66158
// FILE: Java1.java
public class Java1 extends KotlinClass { }
// FILE: Java2.java
public class Java2 extends KotlinClass<Integer> { }
// FILE: Java3.java
public class Java3<T> extends KotlinClass {
public void foo(T t) { }
public Number bar() {
return null;
}
}
// FILE: Java4.java
public class Java4 extends KotlinClass2 { }
// FILE: Java5.java
public class Java5 extends KotlinClass2<Integer> { }
// FILE: Java6.java
public class Java6 extends KotlinClass2 {
@Override
public void foo(Number t) {}
@Override
public Number bar() {
return null;
}
}
// FILE: 1.kt
class A : Java1()
class B : Java1() {
override fun foo(t: Number) { }
}
class C : Java2()
class D : Java2() {
override fun bar(): Int? {
return 6
}
}
class E : Java3<String>()
class F : Java3<String>() {
override fun foo(t: Number) { }
}
class G : Java4()
class H : Java4() {
override fun bar(): Number {
return 1
}
}
class I : Java5()
class J : Java5() {
override fun foo(t: Int?) { }
}
class K : Java6()
class L : Java6() {
override fun bar(): Number {
return 4
}
}
open class KotlinClass<T: Number> {
open val a : T? = null
open fun foo(t: T) { }
open fun bar(): T? {
return a
}
}
open class KotlinClass2<T> where T : Number, T: Comparable<T> {
open val a : T? = null
open fun foo(t: T) { }
open fun bar(): T? {
return a
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L) {
a.foo(1)
a.foo(1.1)
a.bar()
b.foo(1.2)
b.foo(1)
b.bar()
c.foo(null)
c.foo(1)
c.bar()
d.foo(null)
d.foo(1)
d.bar()
e.foo(1)
e.foo("")
e.bar()
f.foo(2)
f.foo("")
f.bar()
g.foo(2)
g.bar()
h.foo(2)
h.bar()
i.foo(2)
i.bar()
j.foo(null)
j.foo(1)
j.bar()
k.foo(1)
k.bar()
l.foo(4)
l.bar()
}
@@ -0,0 +1,202 @@
class A : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(t: Number) {
}
}
class C : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class D : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): Int? {
return 6
}
}
class E : Java3<String> {
constructor() /* primary */ {
super/*Java3*/<@FlexibleNullability String?>()
/* <init>() */
}
}
class F : Java3<String> {
constructor() /* primary */ {
super/*Java3*/<@FlexibleNullability String?>()
/* <init>() */
}
override fun foo(t: Number) {
}
}
class G : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
}
class H : Java4 {
constructor() /* primary */ {
super/*Java4*/()
/* <init>() */
}
override fun bar(): Number {
return 1
}
}
class I : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
}
class J : Java5 {
constructor() /* primary */ {
super/*Java5*/()
/* <init>() */
}
override fun foo(t: Int?) {
}
}
class K : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
}
open class KotlinClass<T : Number> {
open val a: T?
field = null
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): T? {
return <this>.<get-a>()
}
open fun foo(t: T) {
}
}
open class KotlinClass2<T> where T : Number, T : Comparable<T> {
open val a: T?
field = null
open get
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): T? {
return <this>.<get-a>()
}
open fun foo(t: T) {
}
}
class L : Java6 {
constructor() /* primary */ {
super/*Java6*/()
/* <init>() */
}
override fun bar(): Number {
return 4
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L) {
a.foo(t = 1)
a.foo(t = 1.1)
a.bar() /*~> Unit */
b.foo(t = 1.2)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = null)
d.foo(t = 1)
d.bar() /*~> Unit */
e.foo(t = 1)
e.foo(t = "")
e.bar() /*~> Unit */
f.foo(t = 2)
f.foo(t = "")
f.bar() /*~> Unit */
g.foo(t = 2)
g.bar() /*~> Unit */
h.foo(t = 2)
h.bar() /*~> Unit */
i.foo(t = 2)
i.bar() /*~> Unit */
j.foo(t = null)
j.foo(t = 1)
j.bar() /*~> Unit */
k.foo(t = 1)
k.bar() /*~> Unit */
l.foo(t = 4)
l.bar() /*~> Unit */
}
@@ -0,0 +1,510 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1 {
// 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.Number?
// Public signature: /A.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: A#foo(kotlin.Number){}
// Public signature: /A.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.Number?
// Public signature: /A.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1 {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.Number?
// Public signature: /B.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: B#foo(kotlin.Number){}
// Public signature: /B.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
override fun foo(t: Number): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.Number?
// Public signature: /B.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java2 {
// CHECK:
// Mangled name: C#<init>(){}
// Public signature: /C.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: C#bar(){}kotlin.Int?
// Public signature: /C.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: C#foo(kotlin.Int?){}
// Public signature: /C.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.Int?
// Public signature: /C.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java2 {
// CHECK:
// Mangled name: D#<init>(){}
// Public signature: /D.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: D#foo(kotlin.Int?){}
// Public signature: /D.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK JVM_IR:
// Mangled name: D#bar(){}kotlin.Int?
// Public signature: /D.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
override fun bar(): Int?
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.Int?
// Public signature: /D.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java3<String> {
// 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.Number?{EnhancedNullability}
// Public signature: /E.bar|-795460070449086562[0]
// Public signature debug description: bar(){}kotlin.Number?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Number?
// CHECK:
// Mangled name: E#foo(kotlin.String?){}
// Public signature: /E.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(t: String?): Unit
// CHECK:
// Mangled name: E#foo(kotlin.Number){}
// Public signature: /E.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.Number?
// Public signature: /E.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java3<String> {
// 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.Number?{EnhancedNullability}
// Public signature: /F.bar|-795460070449086562[0]
// Public signature debug description: bar(){}kotlin.Number?{EnhancedNullability}
/* fake */ override fun bar(): @EnhancedNullability Number?
// CHECK:
// Mangled name: F#foo(kotlin.String?){}
// Public signature: /F.foo|-7402282804178432687[0]
// Public signature debug description: foo(kotlin.String?){}
/* fake */ override fun foo(t: String?): Unit
// CHECK:
// Mangled name: F#foo(kotlin.Number){}
// Public signature: /F.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
override fun foo(t: Number): Unit
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.Number?
// Public signature: /F.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java4 {
// 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.Number?
// Public signature: /G.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: G#foo(kotlin.Number){}
// Public signature: /G.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.Number?
// Public signature: /G.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java4 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: H#foo(kotlin.Number){}
// Public signature: /H.foo|97687418835402471[0]
// Public signature debug description: foo(kotlin.Number){}
/* fake */ override fun foo(t: Number): Unit
// CHECK JVM_IR:
// Mangled name: H#bar(){}kotlin.Number
// Public signature: /H.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
override fun bar(): Number
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.Number?
// Public signature: /H.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java5 {
// 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.Int?
// Public signature: /I.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: I#foo(kotlin.Int?){}
// Public signature: /I.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: I{}a
// Public signature: /I.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: I#<get-a>(){}kotlin.Int?
// Public signature: /I.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java5 {
// 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.Int?
// Public signature: /J.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: J#foo(kotlin.Int?){}
// Public signature: /J.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
override fun foo(t: Int?): Unit
// CHECK:
// Mangled name: J{}a
// Public signature: /J.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Int?
// CHECK JVM_IR:
// Mangled name: J#<get-a>(){}kotlin.Int?
// Public signature: /J.a.<get-a>|8626555410289046118[0]
// Public signature debug description: <get-a>(){}kotlin.Int?
/* fake */ override get(): Int?
}
// CHECK:
// Mangled name: K
// Public signature: /K|null[0]
class K : Java6 {
// CHECK:
// Mangled name: K#<init>(){}
// Public signature: /K.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: K#bar(){}kotlin.Number?{EnhancedNullability}
// Public signature: /K.bar|-795460070449086562[0]
// Public signature debug description: bar(){}kotlin.Number?{EnhancedNullability}
@Override
/* fake */ override fun bar(): @EnhancedNullability Number?
// CHECK:
// Mangled name: K#foo(kotlin.Number{EnhancedNullability}){}
// Public signature: /K.foo|7903144043962862909[0]
// Public signature debug description: foo(kotlin.Number{EnhancedNullability}){}
@Override
/* fake */ override fun foo(t: @EnhancedNullability Number): Unit
// CHECK:
// Mangled name: K{}a
// Public signature: /K.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: K#<get-a>(){}kotlin.Number?
// Public signature: /K.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass<T : Number> {
// CHECK:
// Mangled name: KotlinClass{}a
// Public signature: /KotlinClass.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: T?
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-a>(){}1:0?
// Public signature: /KotlinClass.a.<get-a>|-8320407562288984615[0]
// Public signature debug description: <get-a>(){}1:0?
open get
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){}1:0?
// Public signature: /KotlinClass.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
open fun bar(): T?
// CHECK:
// Mangled name: KotlinClass#foo(1:0){}
// Public signature: /KotlinClass.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
open fun foo(t: T): Unit
}
// CHECK:
// Mangled name: KotlinClass2
// Public signature: /KotlinClass2|null[0]
open class KotlinClass2<T> where T : Number, T : Comparable<T> {
// CHECK:
// Mangled name: KotlinClass2{}a
// Public signature: /KotlinClass2.a|-1200697420457237799[0]
// Public signature debug description: {}a
open val a: T?
// CHECK JVM_IR:
// Mangled name: KotlinClass2#<get-a>(){}1:0?
// Public signature: /KotlinClass2.a.<get-a>|-8320407562288984615[0]
// Public signature debug description: <get-a>(){}1:0?
open get
// CHECK:
// Mangled name: KotlinClass2#<init>(){}
// Public signature: /KotlinClass2.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass2#bar(){}1:0?
// Public signature: /KotlinClass2.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
open fun bar(): T?
// CHECK:
// Mangled name: KotlinClass2#foo(1:0){}
// Public signature: /KotlinClass2.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
open fun foo(t: T): Unit
}
// CHECK:
// Mangled name: L
// Public signature: /L|null[0]
class L : Java6 {
// CHECK:
// Mangled name: L#<init>(){}
// Public signature: /L.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: L#foo(kotlin.Number{EnhancedNullability}){}
// Public signature: /L.foo|7903144043962862909[0]
// Public signature debug description: foo(kotlin.Number{EnhancedNullability}){}
@Override
/* fake */ override fun foo(t: @EnhancedNullability Number): Unit
// CHECK JVM_IR:
// Mangled name: L#bar(){}kotlin.Number
// Public signature: /L.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
override fun bar(): Number
// CHECK:
// Mangled name: L{}a
// Public signature: /L.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override val a: Number?
// CHECK JVM_IR:
// Mangled name: L#<get-a>(){}kotlin.Number?
// Public signature: /L.a.<get-a>|-6716611300325194840[0]
// Public signature debug description: <get-a>(){}kotlin.Number?
/* fake */ override get(): Number?
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F;G;H;I;J;K;L){}
// Public signature: /test|-3655539743967648908[0]
// Public signature debug description: test(A;B;C;D;E;F;G;H;I;J;K;L){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J, k: K, l: L): Unit
@@ -0,0 +1,399 @@
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:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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 <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT 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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.C.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.C.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.C.foo?
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:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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: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 <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.E.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.E.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.E.foo?
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
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.F.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.F.foo?
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 <T> ($this:<root>.F) returnType:T of <root>.F.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.F.bar declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
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) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k4 type:kotlin.Nothing [val]
TYPE_OP type=kotlin.Nothing origin=IMPLICIT_NOTNULL typeOperand=kotlin.Nothing
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Nothing? origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
VAR name:k11 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Null type=kotlin.Nothing? value=null
VAR name:k12 type:kotlin.Any? [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Any? origin=null
<T>: kotlin.Any?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,111 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
abstract class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class E : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Int = a.bar<Int?>() /*!! Int */
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
val k4: Nothing = a.bar<@FlexibleNullability Nothing?>() /*!! Nothing */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<@FlexibleNullability Nothing?>(a = null)
a.foo<Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo<@FlexibleNullability Int?>(a = 1)
c.foo<@FlexibleNullability Nothing?>(a = null)
c.foo<Int?>(a = null)
c.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k11: Int? = e.bar<Int?>()
e.foo<@FlexibleNullability Int?>(a = 1)
e.foo<@FlexibleNullability Nothing?>(a = null)
val k12: Any? = f.bar<Any?>()
f.foo<@FlexibleNullability Int?>(a = 1)
}
@@ -0,0 +1,399 @@
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:bar visibility:public modality:OPEN <T> ($this:<root>.Java1) returnType:@[FlexibleNullability] T of <root>.A.bar? [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.A.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.A.foo?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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 <T> ($this:<root>.B) returnType:T of <root>.B.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.B.bar declared in <root>.B'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.B, a:T of <root>.B.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:T of <root>.B.foo
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT 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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.C.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.C.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.C.foo?
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:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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: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 <T> ($this:<root>.D) returnType:T of <root>.D.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.D.bar declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <T> ($this:<root>.D, a:T of <root>.D.foo) returnType:kotlin.Unit
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:T of <root>.D.foo
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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>.Java2; <root>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <T> ($this:<root>.KotlinInterface) returnType:T of <root>.E.bar [fake_override]
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.E.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.E.foo?
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
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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>.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 <T> ($this:<root>.Java1, a:@[FlexibleNullability] T of <root>.F.foo?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo <T> (a: @[FlexibleNullability] T of <root>.Java1.foo?): kotlin.Unit declared in <root>.Java1
public abstract fun foo <T> (a: @[FlexibleNullability] T of <root>.Java2.foo?): kotlin.Unit declared in <root>.Java2
public abstract fun foo <T> (a: T of <root>.KotlinInterface.foo): kotlin.Unit declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[@[FlexibleNullability] kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] T of <root>.F.foo?
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 <T> ($this:<root>.F) returnType:T of <root>.F.bar
overridden:
public open fun bar <T> (): @[FlexibleNullability] T of <root>.Java1.bar? declared in <root>.Java1
public abstract fun bar <T> (): @[FlexibleNullability] T of <root>.Java2.bar? declared in <root>.Java2
public abstract fun bar <T> (): T of <root>.KotlinInterface.bar declared in <root>.KotlinInterface
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar <T> (): T of <root>.F.bar declared in <root>.F'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
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 <T> ($this:<root>.KotlinInterface) returnType:T of <root>.KotlinInterface.bar
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <T> ($this:<root>.KotlinInterface, a:T of <root>.KotlinInterface.foo) returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:T of <root>.KotlinInterface.foo
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) 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
BLOCK_BODY
VAR name:k type:kotlin.Int [val]
TYPE_OP type=kotlin.Int origin=IMPLICIT_NOTNULL typeOperand=kotlin.Int
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k3 type:kotlin.Any [val]
TYPE_OP type=kotlin.Any origin=IMPLICIT_NOTNULL typeOperand=kotlin.Any
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Any? origin=null
<T>: @[FlexibleNullability] kotlin.Any?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
VAR name:k4 type:kotlin.Nothing [val]
TYPE_OP type=kotlin.Nothing origin=IMPLICIT_NOTNULL typeOperand=kotlin.Nothing
CALL 'public open fun bar <T> (): @[FlexibleNullability] T of <root>.A.bar? declared in <root>.A' type=@[FlexibleNullability] kotlin.Nothing? origin=null
<T>: @[FlexibleNullability] kotlin.Nothing?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$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 <T> (a: @[FlexibleNullability] T of <root>.A.foo?): kotlin.Unit declared in <root>.A' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$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
VAR name:k5 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
VAR name:k6 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.B.bar declared in <root>.B' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.B.foo): kotlin.Unit declared in <root>.B' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B 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
VAR name:k7 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
VAR name:k8 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.C.bar declared in <root>.C' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
a: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.C.foo?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.collections.List<kotlin.Nothing?>?
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C 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
VAR name:k9 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
VAR name:k10 type:kotlin.Any [val]
CALL 'public open fun bar <T> (): T of <root>.D.bar declared in <root>.D' type=kotlin.Any origin=null
<T>: kotlin.Any
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.Int?
$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 <T> (a: T of <root>.D.foo): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
<T>: kotlin.collections.List<kotlin.Nothing?>
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D 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
VAR name:k11 type:kotlin.Int? [val]
CALL 'public open fun bar <T> (): T of <root>.E.bar declared in <root>.E' type=kotlin.Int? origin=null
<T>: kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Int type=kotlin.Int value=1
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.E.foo?): kotlin.Unit declared in <root>.E' type=kotlin.Unit origin=null
<T>: kotlin.Nothing?
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
a: CONST Null type=kotlin.Nothing? value=null
VAR name:k12 type:kotlin.Any? [val]
CALL 'public open fun bar <T> (): T of <root>.F.bar declared in <root>.F' type=kotlin.Any? origin=null
<T>: kotlin.Any?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo <T> (a: @[FlexibleNullability] T of <root>.F.foo?): kotlin.Unit declared in <root>.F' type=kotlin.Unit origin=null
<T>: @[FlexibleNullability] kotlin.Int?
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
a: CONST Int type=kotlin.Int value=1
@@ -0,0 +1,88 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
public class Java1 {
public <T> void foo(T a) { }
public <T> T bar() {
return null;
}
}
// FILE: Java2.java
public interface Java2 {
public <T> void foo(T a);
public <T> T bar();
}
// FILE: 1.kt
class A : Java1(), Java2 //Kotlin ← Java1, Java2
class B : Java1(), Java2 {
override fun <T : Any?> bar(): T {
return null!!
}
override fun <T : Any?> foo(a: T) { }
}
abstract class C : Java1(), KotlinInterface // Kotlin ← Java, Kotlin2
class D : Java1(), KotlinInterface {
override fun <T : Any?> bar(): T {
return null!!
}
override fun <T : Any?> foo(a: T) { }
}
class E : Java1(), Java2, KotlinInterface // Kotlin ← Java1, Java2, Kotlin2
class F : Java1(), Java2, KotlinInterface {
override fun <T : Any?> bar(): T {
return null!!
}
}
interface KotlinInterface {
fun <T> foo(a: T)
fun <T> bar(): T
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Int = a.bar<Int?>()
val k3: Any = a.bar()
val k4: Nothing = a.bar()
a.foo(1)
a.foo(null)
a.foo<Int?>(null)
a.foo(listOf(null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo(1)
b.foo(null)
b.foo<Int?>(null)
b.foo(listOf(null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo(1)
c.foo(null)
c.foo<Int?>(null)
c.foo(listOf(null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo(1)
d.foo(null)
d.foo<Int?>(null)
d.foo(listOf(null))
val k11: Int? = e.bar<Int?>()
e.foo(1)
e.foo(null)
val k12: Any? = f.bar<Any?>()
f.foo(1)
}
@@ -0,0 +1,111 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
abstract class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun <T : Any?> foo(a: T) {
}
}
class E : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun <T : Any?> bar(): T {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
}
interface KotlinInterface {
abstract fun <T : Any?> bar(): T
abstract fun <T : Any?> foo(a: T)
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F) {
val k: Int = a.bar<@FlexibleNullability Int?>() /*!! Int */
val k3: Any = a.bar<@FlexibleNullability Any?>() /*!! Any */
val k4: Nothing = a.bar<@FlexibleNullability Nothing?>() /*!! Nothing */
a.foo<@FlexibleNullability Int?>(a = 1)
a.foo<Nothing?>(a = null)
a.foo<@FlexibleNullability Int?>(a = null)
a.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k5: Int? = b.bar<Int?>()
val k6: Any = b.bar<Any>()
b.foo<Int>(a = 1)
b.foo<Nothing?>(a = null)
b.foo<Int?>(a = null)
b.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k7: Int? = c.bar<Int?>()
val k8: Any = c.bar<Any>()
c.foo<@FlexibleNullability Int?>(a = 1)
c.foo<Nothing?>(a = null)
c.foo<@FlexibleNullability Int?>(a = null)
c.foo<@FlexibleNullability List<Nothing?>?>(a = listOf<Nothing?>(element = null))
val k9: Int? = d.bar<Int?>()
val k10: Any = d.bar<Any>()
d.foo<Int>(a = 1)
d.foo<Nothing?>(a = null)
d.foo<Int?>(a = null)
d.foo<List<Nothing?>>(a = listOf<Nothing?>(element = null))
val k11: Int? = e.bar<Int?>()
e.foo<@FlexibleNullability Int?>(a = 1)
e.foo<Nothing?>(a = null)
val k12: Any? = f.bar<Any?>()
f.foo<@FlexibleNullability Int?>(a = 1)
}
@@ -0,0 +1,167 @@
// 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 JVM_IR:
// Mangled name: A#bar(){0§<kotlin.Any?>}0:0?
// Public signature: /A.bar|3413998560905296504[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0?
/* fake */ override fun <T : Any?> bar(): T?
// CHECK:
// Mangled name: A#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /A.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java2 {
// 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(){0§<kotlin.Any?>}0:0
// Public signature: /B.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: B#foo(0:0){0§<kotlin.Any?>}
// Public signature: /B.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): 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(){0§<kotlin.Any?>}0:0
// Public signature: /C.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: C#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /C.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): 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(){0§<kotlin.Any?>}0:0
// Public signature: /D.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: D#foo(0:0){0§<kotlin.Any?>}
// Public signature: /D.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
override fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
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(){0§<kotlin.Any?>}0:0
// Public signature: /E.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
/* fake */ override fun <T : Any?> bar(): T
// CHECK:
// Mangled name: E#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /E.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, Java2, KotlinInterface {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(0:0?){0§<kotlin.Any?>}
// Public signature: /F.foo|-4923898216441019033[0]
// Public signature debug description: foo(0:0?){0§<kotlin.Any?>}
/* fake */ override fun <T : Any?> foo(a: T?): Unit
// CHECK JVM_IR:
// Mangled name: F#bar(){0§<kotlin.Any?>}0:0
// Public signature: /F.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
override fun <T : Any?> bar(): T
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){0§<kotlin.Any?>}0:0
// Public signature: /KotlinInterface.bar|-3730887172686175993[0]
// Public signature debug description: bar(){0§<kotlin.Any?>}0:0
abstract fun <T : Any?> bar(): T
// CHECK:
// Mangled name: KotlinInterface#foo(0:0){0§<kotlin.Any?>}
// Public signature: /KotlinInterface.foo|-6838606926256314363[0]
// Public signature debug description: foo(0:0){0§<kotlin.Any?>}
abstract fun <T : Any?> foo(a: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C;D;E;F){}
// Public signature: /test|-4390352378432875580[0]
// Public signature debug description: test(A;B;C;D;E;F){}
fun test(a: A, b: B, c: C, d: D, e: E, f: F): Unit
@@ -0,0 +1,415 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]'
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.B) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.C>; <root>.Java2<T of <root>.C>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C<T of <root>.C>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.C>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.C<T of <root>.C> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.C
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.C>; <root>.Java2<T of <root>.C>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.C>) returnType:@[FlexibleNullability] T of <root>.C? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.C>
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<T of <root>.C>, t:@[FlexibleNullability] T of <root>.C?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.C>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.C?
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
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.D>; <root>.Java2<T of <root>.D>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D<T of <root>.D>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.D>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.D<T of <root>.D> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.D
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.D>; <root>.Java2<T of <root>.D>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.D>) returnType:@[FlexibleNullability] T of <root>.D? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.D>
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: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:foo visibility:public modality:OPEN <> ($this:<root>.D<T of <root>.D>, t:T of <root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D<T of <root>.D>
VALUE_PARAMETER name:t index:0 type:T of <root>.D
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]
$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'
<T>: kotlin.Number
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]
$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'
<T>: kotlin.Number
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Number
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.F'
CONST Int type=kotlin.Int value=2
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]
$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'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface<kotlin.Int>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<kotlin.Int>
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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:H modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.H>; <root>.KotlinInterface<T of <root>.H>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H<T of <root>.H>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number?] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.H<T of <root>.H> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: T of <root>.H
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.H>; <root>.KotlinInterface<T of <root>.H>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface<T of <root>.H>) returnType:T of <root>.H? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.H>
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<T of <root>.H>, t:@[FlexibleNullability] T of <root>.H?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.H>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.H?
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:I modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: kotlin.Int
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]'
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.I) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=3
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
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<T of <root>.KotlinInterface>) returnType:T of <root>.KotlinInterface?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface<T of <root>.KotlinInterface>, t:T of <root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinInterface
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C<kotlin.Int>, d:<root>.D<kotlin.Float>, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H<kotlin.Int?>, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C<kotlin.Int>
VALUE_PARAMETER name:d index:3 type:<root>.D<kotlin.Float>
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<kotlin.Int?>
VALUE_PARAMETER name:i index:8 type:<root>.I
BLOCK_BODY
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.C?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.C?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
t: 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 (): @[FlexibleNullability] T of <root>.C? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
CALL 'public open fun foo (t: T of <root>.D): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D<kotlin.Float> declared in <root>.test' type=<root>.D<kotlin.Float> origin=null
t: CONST Float type=kotlin.Float value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] T of <root>.D? declared in <root>.D' type=@[FlexibleNullability] kotlin.Float? origin=null
$this: GET_VAR 'd: <root>.D<kotlin.Float> declared in <root>.test' type=<root>.D<kotlin.Float> origin=null
CALL 'public open fun foo (t: @[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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.E' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Double type=kotlin.Double value=2.2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.F' type=kotlin.Number origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.H?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H<kotlin.Int?> declared in <root>.test' type=<root>.H<kotlin.Int?> origin=null
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): T of <root>.H? declared in <root>.H' type=kotlin.Int? origin=null
$this: GET_VAR 'h: <root>.H<kotlin.Int?> declared in <root>.test' type=<root>.H<kotlin.Int?> origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
@@ -0,0 +1,126 @@
class A : Java1<Int>, Java2<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class B : Java1<Int>, Java2<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
override fun bar(): Int {
return 1
}
}
class C<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
}
class D<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
override fun foo(t: T) {
}
}
class E : Java1<Number>, Java3<Number> {
constructor() /* primary */ {
super/*Java1*/<Number>()
/* <init>() */
}
}
class F : Java1<Number>, Java3<Number> {
constructor() /* primary */ {
super/*Java1*/<Number>()
/* <init>() */
}
override fun bar(): Number {
return 2
}
}
class G : Java1<Int>, KotlinInterface<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
}
class H<T : Number?> : Java1<T>, KotlinInterface<T> {
constructor() /* primary */ {
super/*Java1*/<T>()
/* <init>() */
}
}
class I : Java1<Int>, KotlinInterface<Int> {
constructor() /* primary */ {
super/*Java1*/<Int>()
/* <init>() */
}
override fun bar(): Int {
return 3
}
}
interface KotlinInterface<T : Any?> {
abstract fun bar(): T?
abstract fun foo(t: T)
}
fun test(a: A, b: B, c: C<Int>, d: D<Float>, e: E, f: F, g: G, h: H<Int?>, i: I) {
a.foo(t = null)
a.foo(t = 1)
a.bar() /*~> Unit */
b.foo(t = null)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = 1.1F)
d.bar() /*~> Unit */
e.foo(t = 1)
e.bar() /*~> Unit */
f.foo(t = 2.2)
f.bar() /*~> Unit */
g.foo(t = 2)
g.bar() /*~> Unit */
h.foo(t = null)
h.bar() /*~> Unit */
i.foo(t = null)
i.bar() /*~> Unit */
}
@@ -0,0 +1,415 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Int>) returnType:@[FlexibleNullability] kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.Java2<kotlin.Int>]'
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.B) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.B'
CONST Int type=kotlin.Int value=1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.C>; <root>.Java2<T of <root>.C>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.C<T of <root>.C>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.C>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.C<T of <root>.C> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: @[FlexibleNullability] T of <root>.C?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.C>; <root>.Java2<T of <root>.C>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.C>) returnType:@[FlexibleNullability] T of <root>.C? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.C>
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<T of <root>.C>, t:@[FlexibleNullability] T of <root>.C?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.C>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.C?
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
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.D>; <root>.Java2<T of <root>.D>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.D<T of <root>.D>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number; kotlin.Comparable<T of <root>.D>] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.D<T of <root>.D> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: @[FlexibleNullability] T of <root>.D?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.D>; <root>.Java2<T of <root>.D>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<T of <root>.D>) returnType:@[FlexibleNullability] T of <root>.D? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java2? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.D>
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: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:foo visibility:public modality:OPEN <> ($this:<root>.D<T of <root>.D>, t:T of <root>.D) returnType:kotlin.Unit
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java2?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.D<T of <root>.D>
VALUE_PARAMETER name:t index:0 type:T of <root>.D
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]
$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'
<T>: @[FlexibleNullability] kotlin.Number?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>) returnType:@[FlexibleNullability] kotlin.Number? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]
$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'
<T>: @[FlexibleNullability] kotlin.Number?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Number>; <root>.Java3<kotlin.Number>]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.Java1<kotlin.Number>, t:@[FlexibleNullability] kotlin.Number?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: @[FlexibleNullability] T of <root>.Java3?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Number>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Number?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.Number
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] T of <root>.Java3? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Number declared in <root>.F'
CONST Int type=kotlin.Int value=2
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]
$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'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface<kotlin.Int>) returnType:kotlin.Int? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<kotlin.Int>
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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:H modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.H>; <root>.KotlinInterface<T of <root>.H>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H<T of <root>.H>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Number?] reified:false
CONSTRUCTOR visibility:public <> () returnType:<root>.H<T of <root>.H> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: @[FlexibleNullability] T of <root>.H?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1<T of <root>.H>; <root>.KotlinInterface<T of <root>.H>]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface<T of <root>.H>) returnType:T of <root>.H? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.H>
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<T of <root>.H>, t:@[FlexibleNullability] T of <root>.H?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<T of <root>.H>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] T of <root>.H?
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:I modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
<T>: @[FlexibleNullability] kotlin.Int?
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1<kotlin.Int>; <root>.KotlinInterface<kotlin.Int>]'
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<kotlin.Int>, t:@[FlexibleNullability] kotlin.Int?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (t: @[FlexibleNullability] T of <root>.Java1?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (t: T of <root>.KotlinInterface): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1<kotlin.Int>
VALUE_PARAMETER name:t index:0 type:@[FlexibleNullability] kotlin.Int?
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>.I) returnType:kotlin.Int
overridden:
public open fun bar (): @[FlexibleNullability] T of <root>.Java1? declared in <root>.Java1
public abstract fun bar (): T of <root>.KotlinInterface? declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.I
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.Int declared in <root>.I'
CONST Int type=kotlin.Int value=3
CLASS INTERFACE name:KotlinInterface modality:ABSTRACT visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
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<T of <root>.KotlinInterface>) returnType:T of <root>.KotlinInterface?
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface<T of <root>.KotlinInterface>, t:T of <root>.KotlinInterface) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface<T of <root>.KotlinInterface>
VALUE_PARAMETER name:t index:0 type:T of <root>.KotlinInterface
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C<kotlin.Int>, d:<root>.D<kotlin.Float>, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H<kotlin.Int?>, i:<root>.I) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C<kotlin.Int>
VALUE_PARAMETER name:d index:3 type:<root>.D<kotlin.Float>
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<kotlin.Int?>
VALUE_PARAMETER name:i index:8 type:<root>.I
BLOCK_BODY
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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 (): @[FlexibleNullability] kotlin.Int? declared in <root>.A' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: 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.Int declared in <root>.B' type=kotlin.Int origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.C?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
t: CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.C?): kotlin.Unit declared in <root>.C' type=kotlin.Unit origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
t: 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 (): @[FlexibleNullability] T of <root>.C? declared in <root>.C' type=@[FlexibleNullability] kotlin.Int? origin=null
$this: GET_VAR 'c: <root>.C<kotlin.Int> declared in <root>.test' type=<root>.C<kotlin.Int> origin=null
CALL 'public open fun foo (t: T of <root>.D): kotlin.Unit declared in <root>.D' type=kotlin.Unit origin=null
$this: GET_VAR 'd: <root>.D<kotlin.Float> declared in <root>.test' type=<root>.D<kotlin.Float> origin=null
t: CONST Float type=kotlin.Float value=1.1
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): @[FlexibleNullability] T of <root>.D? declared in <root>.D' type=@[FlexibleNullability] kotlin.Float? origin=null
$this: GET_VAR 'd: <root>.D<kotlin.Float> declared in <root>.test' type=<root>.D<kotlin.Float> origin=null
CALL 'public open fun foo (t: @[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
t: 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 (): @[FlexibleNullability] kotlin.Number? declared in <root>.E' type=@[FlexibleNullability] kotlin.Number? origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] 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
t: CONST Double type=kotlin.Double value=2.2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.Number declared in <root>.F' type=kotlin.Number origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Int type=kotlin.Int value=2
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
CALL 'public open fun foo (t: @[FlexibleNullability] T of <root>.H?): kotlin.Unit declared in <root>.H' type=kotlin.Unit origin=null
$this: GET_VAR 'h: <root>.H<kotlin.Int?> declared in <root>.test' type=<root>.H<kotlin.Int?> origin=null
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): T of <root>.H? declared in <root>.H' type=kotlin.Int? origin=null
$this: GET_VAR 'h: <root>.H<kotlin.Int?> declared in <root>.test' type=<root>.H<kotlin.Int?> origin=null
CALL 'public open fun foo (t: @[FlexibleNullability] kotlin.Int?): 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
t: CONST Null type=kotlin.Nothing? value=null
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): 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
@@ -0,0 +1,83 @@
// TARGET_BACKEND: JVM
// FILE: Java1.java
public class Java1<T extends Number> {
public void foo(T t) { }
public T bar() {
return null;
}
}
// FILE: Java2.java
public interface Java2<T extends Number&Comparable> {
public void foo(T t);
public T bar();
}
// FILE: Java3.java
public interface Java3<T> {
public void foo(T t);
public T bar();
}
// FILE: 1.kt
class A: Java1<Int>(), Java2<Int> //Kotlin ← Java1, Java2
class B : Java1<Int>(), Java2<Int> {
override fun bar(): Int {
return 1
}
}
class C<T>: Java1<T>(), Java2<T> where T: Number, T: Comparable<T>
class D<T>: Java1<T>(), Java2<T> where T: Number, T: Comparable<T> {
override fun foo(t: T) { }
}
class E : Java1<Number>(), Java3<Number>
class F : Java1<Number>(), Java3<Number> {
override fun bar(): Number {
return 2
}
}
class G : Java1<Int>(), KotlinInterface<Int> // Kotlin ← Java, Kotlin2
class H<T: Number?>: Java1<T>(), KotlinInterface<T>
class I : Java1<Int>(), KotlinInterface<Int> {
override fun bar(): Int {
return 3
}
}
interface KotlinInterface<T>{
fun foo(t: T)
fun bar(): T?
}
fun test(a: A, b: B, c: C<Int>, d: D<Float>, e: E, f: F, g: G, h: H<Int?>, i: I) {
a.foo(null)
a.foo(1)
a.bar()
b.foo(null)
b.foo(1)
b.bar()
c.foo(null)
c.foo(1)
c.bar()
d.foo(1.1F)
d.bar()
e.foo(1)
e.bar()
f.foo(2.2)
f.bar()
g.foo(2)
g.bar()
h.foo(null)
h.bar()
i.foo(null)
i.bar()
}
@@ -0,0 +1,126 @@
class A : Java1<Int>, Java2<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
}
class B : Java1<Int>, Java2<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
override fun bar(): Int {
return 1
}
}
class C<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability T?>()
/* <init>() */
}
}
class D<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability T?>()
/* <init>() */
}
override fun foo(t: T) {
}
}
class E : Java1<Number>, Java3<Number> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Number?>()
/* <init>() */
}
}
class F : Java1<Number>, Java3<Number> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Number?>()
/* <init>() */
}
override fun bar(): Number {
return 2
}
}
class G : Java1<Int>, KotlinInterface<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
}
class H<T : Number?> : Java1<T>, KotlinInterface<T> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability T?>()
/* <init>() */
}
}
class I : Java1<Int>, KotlinInterface<Int> {
constructor() /* primary */ {
super/*Java1*/<@FlexibleNullability Int?>()
/* <init>() */
}
override fun bar(): Int {
return 3
}
}
interface KotlinInterface<T : Any?> {
abstract fun bar(): T?
abstract fun foo(t: T)
}
fun test(a: A, b: B, c: C<Int>, d: D<Float>, e: E, f: F, g: G, h: H<Int?>, i: I) {
a.foo(t = null)
a.foo(t = 1)
a.bar() /*~> Unit */
b.foo(t = null)
b.foo(t = 1)
b.bar() /*~> Unit */
c.foo(t = null)
c.foo(t = 1)
c.bar() /*~> Unit */
d.foo(t = 1.1F)
d.bar() /*~> Unit */
e.foo(t = 1)
e.bar() /*~> Unit */
f.foo(t = 2.2)
f.bar() /*~> Unit */
g.foo(t = 2)
g.bar() /*~> Unit */
h.foo(t = null)
h.bar() /*~> Unit */
i.foo(t = null)
i.bar() /*~> Unit */
}
@@ -0,0 +1,239 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java1<Int>, Java2<Int> {
// 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.Int?
// Public signature: /A.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: A#foo(kotlin.Int?){}
// Public signature: /A.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1<Int>, Java2<Int> {
// CHECK:
// Mangled name: B#<init>(){}
// Public signature: /B.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: B#foo(kotlin.Int?){}
// Public signature: /B.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK JVM_IR:
// Mangled name: B#bar(){}kotlin.Int
// Public signature: /B.bar|-6436649210114349217[0]
// Public signature debug description: bar(){}kotlin.Int
override fun bar(): Int
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
// 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(){}1:0?
// Public signature: /C.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
/* fake */ override fun bar(): T?
// CHECK:
// Mangled name: C#foo(1:0?){}
// Public signature: /C.foo|-131141195414545503[0]
// Public signature debug description: foo(1:0?){}
/* fake */ override fun foo(t: T?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D<T> : Java1<T>, Java2<T> where T : Number, T : Comparable<T> {
// 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(){}1:0?
// Public signature: /D.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
/* fake */ override fun bar(): T?
// CHECK:
// Mangled name: D#foo(1:0){}
// Public signature: /D.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
override fun foo(t: T): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java1<Number>, Java3<Number> {
// 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.Number?
// Public signature: /E.bar|-1679062975122643439[0]
// Public signature debug description: bar(){}kotlin.Number?
/* fake */ override fun bar(): Number?
// CHECK:
// Mangled name: E#foo(kotlin.Number?){}
// Public signature: /E.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1<Number>, Java3<Number> {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(kotlin.Number?){}
// Public signature: /F.foo|2831167016207060641[0]
// Public signature debug description: foo(kotlin.Number?){}
/* fake */ override fun foo(t: Number?): Unit
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.Number
// Public signature: /F.bar|-5440891288638820662[0]
// Public signature debug description: bar(){}kotlin.Number
override fun bar(): Number
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1<Int>, KotlinInterface<Int> {
// 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.Int?
// Public signature: /G.bar|793910862689138186[0]
// Public signature debug description: bar(){}kotlin.Int?
/* fake */ override fun bar(): Int?
// CHECK:
// Mangled name: G#foo(kotlin.Int?){}
// Public signature: /G.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H<T : Number?> : Java1<T>, KotlinInterface<T> {
// 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(){}1:0?
// Public signature: /H.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
/* fake */ override fun bar(): T?
// CHECK:
// Mangled name: H#foo(1:0?){}
// Public signature: /H.foo|-131141195414545503[0]
// Public signature debug description: foo(1:0?){}
/* fake */ override fun foo(t: T?): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
class I : Java1<Int>, KotlinInterface<Int> {
// CHECK:
// Mangled name: I#<init>(){}
// Public signature: /I.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: I#foo(kotlin.Int?){}
// Public signature: /I.foo|-4109638554625433529[0]
// Public signature debug description: foo(kotlin.Int?){}
/* fake */ override fun foo(t: Int?): Unit
// CHECK JVM_IR:
// Mangled name: I#bar(){}kotlin.Int
// Public signature: /I.bar|-6436649210114349217[0]
// Public signature debug description: bar(){}kotlin.Int
override fun bar(): Int
}
// CHECK:
// Mangled name: KotlinInterface
// Public signature: /KotlinInterface|null[0]
interface KotlinInterface<T : Any?> {
// CHECK JVM_IR:
// Mangled name: KotlinInterface#bar(){}1:0?
// Public signature: /KotlinInterface.bar|-1411410744407944436[0]
// Public signature debug description: bar(){}1:0?
abstract fun bar(): T?
// CHECK:
// Mangled name: KotlinInterface#foo(1:0){}
// Public signature: /KotlinInterface.foo|-701456291278879981[0]
// Public signature debug description: foo(1:0){}
abstract fun foo(t: T): Unit
}
// CHECK:
// Mangled name: #test(A;B;C<kotlin.Int>;D<kotlin.Float>;E;F;G;H<kotlin.Int?>;I){}
// Public signature: /test|652388941617652070[0]
// Public signature debug description: test(A;B;C<kotlin.Int>;D<kotlin.Float>;E;F;G;H<kotlin.Int?>;I){}
fun test(a: A, b: B, c: C<Int>, d: D<Float>, e: E, f: F, g: G, h: H<Int?>, i: I): Unit
@@ -0,0 +1,667 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>?
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.B'
CALL 'public final fun mutableListOf <T> (): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
<T>: kotlin.Any?
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
CLASS CLASS name:C modality:ABSTRACT 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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
$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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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: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>.D) returnType:kotlin.collections.List<kotlin.Any?>
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
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.D'
CALL 'public final fun emptyList <T> (): kotlin.collections.List<T of kotlin.collections.emptyList> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Any?> origin=null
<T>: kotlin.Any?
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.D, value:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]'
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 (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> 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>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private
EXPRESSION_BODY
GET_VAR 'a: kotlin.collections.List<kotlin.Any?> declared in <root>.F.<init>' type=kotlin.collections.List<kotlin.Any?> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.collections.List<kotlin.Any?> origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.F, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<set-a>' type=<root>.F origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<kotlin.Any?> declared in <root>.F.<set-a>' type=kotlin.collections.List<kotlin.Any?> origin=null
CONSTRUCTOR visibility:public <> (a:kotlin.collections.List<kotlin.Any?>) returnType:<root>.F [primary]
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
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>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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>.F) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=1
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$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>.KotlinInterface; <root>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<*> [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
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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
public abstract a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
public abstract a: kotlin.collections.List<*>
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private
EXPRESSION_BODY
GET_VAR 'a: kotlin.collections.List<kotlin.Any?> declared in <root>.H.<init>' type=kotlin.collections.List<kotlin.Any?> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.collections.List<kotlin.Any?> origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.H, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<set-a>' type=<root>.H origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<kotlin.Any?> declared in <root>.H.<set-a>' type=kotlin.collections.List<kotlin.Any?> origin=null
CONSTRUCTOR visibility:public <> (a:kotlin.collections.List<kotlin.Any?>) returnType:<root>.H [primary]
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
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]
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
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: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:foo visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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 (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL 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: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>.J) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
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.List<kotlin.Any?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
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<*>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, a:kotlin.collections.List<*>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?>? [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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 foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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: CONST Null type=kotlin.Nothing? value=null
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.C' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.List<kotlin.Any?>): 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 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
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D' type=kotlin.collections.List<kotlin.Any?> 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k5 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.E' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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
VAR name:k6 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.F' type=kotlin.collections.MutableList<kotlin.Any?> 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
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
$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
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
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
$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
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
VAR name:k9 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.I' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k10 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,182 @@
class A : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?>? {
return mutableListOf<Any?>()
}
override fun foo(a: MutableList<Any?>?) {
}
}
abstract class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<Any?> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: List<Any?>) {
}
override var a: List<Any?>
override get(): List<Any?> {
return emptyList<Any?>()
}
override set(value: List<Any?>) {
}
}
abstract class E : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java2, KotlinInterface {
override var a: List<Any?>
field = a
override get
override set
constructor(a: List<Any?>) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [1])
}
}
abstract class G : Java1, KotlinInterface, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, KotlinInterface, KotlinInterface2 {
override var a: List<Any?>
field = a
override get
override set
constructor(a: List<Any?>) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<Any?>) {
}
}
class I : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class J : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [""])
}
override fun foo(a: MutableList<Any?>) {
}
}
interface KotlinInterface {
abstract fun bar(): List<Any?>
abstract fun foo(a: List<Any?>)
abstract var a: List<Any?>
abstract get
abstract set
}
interface KotlinInterface2 {
abstract fun bar(): List<*>
abstract fun foo(a: List<*>)
abstract var a: List<*>
abstract get
abstract set
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar() /*!! @FlexibleMutability @RawType MutableList<Any?> */
b.foo(a = mutableListOf<Any?>(elements = [null]))
b.foo(a = null)
val k2: List<Any?>? = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
c.foo(a = null)
val k3: List<Any?> = c.bar()
d.foo(a = listOf<Nothing?>(element = null))
val k4: List<Any?> = d.bar()
e.foo(a = listOf<Nothing?>(element = null))
val k5: List<Any?> = e.bar()
f.foo(a = listOf<Nothing?>(element = null))
val k6: List<Any?> = f.bar()
g.foo(a = listOf<Nothing?>(element = null))
val k7: List<Any?> = g.bar()
h.foo(a = listOf<Nothing?>(element = null))
val k8: List<Any?> = h.bar()
i.foo(a = listOf<Nothing?>(element = null))
val k9: List<Any?> = i.bar() /*!! @FlexibleMutability @RawType MutableList<Any?> */
j.foo(a = mutableListOf<Any?>(elements = [null]))
val k10: List<Any?> = j.bar()
}
@@ -0,0 +1,409 @@
// 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
@@ -0,0 +1,697 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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 (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$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>.Java3]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>?
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.B'
CALL 'public final fun mutableListOf <T> (): kotlin.collections.MutableList<T of kotlin.collections.mutableListOf> declared in kotlin.collections' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
<T>: kotlin.Any?
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:C modality:ABSTRACT 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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface]'
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
$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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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: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>.D) returnType:kotlin.collections.List<kotlin.Any?>
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
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D'
CALL 'public final fun CHECK_NOT_NULL <T0> (arg0: T0 of kotlin.internal.ir.CHECK_NOT_NULL?): {T0 of kotlin.internal.ir.CHECK_NOT_NULL & Any} declared in kotlin.internal.ir' type=kotlin.Nothing origin=EXCLEXCL
<T0>: kotlin.Nothing
arg0: CONST Null type=kotlin.Nothing? value=null
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.D'
CALL 'public final fun emptyList <T> (): kotlin.collections.List<T of kotlin.collections.emptyList> declared in kotlin.collections' type=kotlin.collections.List<kotlin.Any?> origin=null
<T>: kotlin.Any?
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.D, value:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
CLASS CLASS name:E modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$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:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]'
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 (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> 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>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.KotlinInterface]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.F
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private
EXPRESSION_BODY
GET_VAR 'a: kotlin.collections.List<kotlin.Any?> declared in <root>.F.<init>' type=kotlin.collections.List<kotlin.Any?> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.F'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.collections.List<kotlin.Any?> origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<get-a>' type=<root>.F origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.F, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.F declared in <root>.F.<set-a>' type=<root>.F origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<kotlin.Any?> declared in <root>.F.<set-a>' type=kotlin.collections.List<kotlin.Any?> origin=null
CONSTRUCTOR visibility:public <> (a:kotlin.collections.List<kotlin.Any?>) returnType:<root>.F [primary]
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
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>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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>.F) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=1
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:G modality:ABSTRACT visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$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>.KotlinInterface; <root>.KotlinInterface2]'
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>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
public abstract a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:ABSTRACT [fake_override,var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.KotlinInterface; <root>.KotlinInterface2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract a: kotlin.collections.List<kotlin.Any?>
public abstract a: kotlin.collections.List<*>
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private
EXPRESSION_BODY
GET_VAR 'a: kotlin.collections.List<kotlin.Any?> declared in <root>.H.<init>' type=kotlin.collections.List<kotlin.Any?> origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.H) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
public abstract fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.H'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.collections.List<kotlin.Any?> origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<get-a>' type=<root>.H origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.H, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<kotlin.Any?> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.H declared in <root>.H.<set-a>' type=<root>.H origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<kotlin.Any?> declared in <root>.H.<set-a>' type=kotlin.collections.List<kotlin.Any?> origin=null
CONSTRUCTOR visibility:public <> (a:kotlin.collections.List<kotlin.Any?>) returnType:<root>.H [primary]
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
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>.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>.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: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:foo visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
public abstract fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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 (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL 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: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>.J) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST String type=kotlin.String value=""
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[FlexibleNullability] kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
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.List<kotlin.Any?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
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<*>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, a:kotlin.collections.List<*>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface2, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface2
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<*> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<*>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?>? [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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 foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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: CONST Null type=kotlin.Nothing? value=null
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.C' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.List<kotlin.Any?>): 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 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
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.D' type=kotlin.collections.List<kotlin.Any?> 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k5 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.E' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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
VAR name:k6 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.F' type=kotlin.collections.MutableList<kotlin.Any?> 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k7 type:kotlin.collections.List<kotlin.Any?> [val]
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
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
VAR name:k8 type:kotlin.collections.List<kotlin.Any?> [val]
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
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
VAR name:k9 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<*> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<*>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.I' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k10 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,116 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// FILE: Java1.java
import java.util.*;
public class Java1 {
public List a = new ArrayList();
public void foo(List a) { };
public List bar() {
return null;
};
}
// FILE: Java2.java
import java.util.*;
public interface Java2 {
List a = new ArrayList();
void foo(List a);
List bar();
}
// FILE: Java3.java
import java.util.*;
public interface Java3 {
List<Object> a = new ArrayList<Object>(1);
void foo(List<Object> a);
List<Object> bar();
}
// FILE: 1.kt
class A : Java1(), Java3 //Kotlin ← Java1, Java2
class B : Java1(), Java3 {
override fun bar(): MutableList<Any?>? {
return mutableListOf()
}
override fun foo(a: MutableList<Any?>?) { }
}
abstract class C: Java1(), KotlinInterface //Kotlin ← Java, Kotlin2
class D : Java1(), KotlinInterface {
override var a: List<Any?>
get() = emptyList()
set(value) {}
override fun foo(a: List<Any?>) { }
override fun bar(): List<Any?> {
return null!!
}
}
abstract class E: Java1(), Java2, KotlinInterface //Kotlin ← Java1, Java2, Kotlin2
class F(override var a: List<Any?>) : Java1(), Java2, KotlinInterface {
override fun bar(): MutableList<Any?> {
return mutableListOf(1)
}
}
abstract class G : Java1(), KotlinInterface, KotlinInterface2 //Kotlin ← Java, Kotlin1, Kotlin2
class H(override var a: List<Any?>) : Java1(), KotlinInterface, KotlinInterface2 {
override fun foo(a: List<Any?>) { }
}
class I : Java1(), Java2, Java3 //Kotlin ← Java1, Java2, Java3
class J : Java1(), Java2, Java3 {
override fun foo(a: MutableList<Any?>) { }
override fun bar(): MutableList<Any?> {
return mutableListOf("")
}
}
interface KotlinInterface {
var a: List<Any?>
fun foo(a: List<Any?>)
fun bar(): List<Any?>
}
interface KotlinInterface2 {
var a: List<*>
fun foo(a: List<*>)
fun bar(): List<*>
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.foo(null)
a.foo(mutableListOf(null))
val k: List<Any?> = a.bar()
b.foo(mutableListOf(null))
b.foo(null)
val k2: List<Any?>? = b.bar()
c.foo(listOf(null))
c.foo(null)
val k3: List<Any?> = c.bar()
d.foo(listOf(null))
val k4: List<Any?> = d.bar()
e.foo(listOf(null))
val k5: List<Any?> = e.bar()
f.foo(listOf(null))
val k6: List<Any?> = f.bar()
g.foo(listOf(null))
val k7: List<Any?> = g.bar()
h.foo(listOf(null))
val k8: List<Any?> = h.bar()
i.foo(listOf(null))
val k9: List<Any?> = i.bar()
j.foo(mutableListOf(null))
val k10: List<Any?> = j.bar()
}
@@ -0,0 +1,182 @@
class A : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?>? {
return mutableListOf<Any?>()
}
override fun foo(a: MutableList<Any?>?) {
}
}
abstract class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<Any?> {
return CHECK_NOT_NULL<Nothing>(arg0 = null)
}
override fun foo(a: List<Any?>) {
}
override var a: List<Any?>
override get(): List<Any?> {
return emptyList<Any?>()
}
override set(value: List<Any?>) {
}
}
abstract class E : Java1, Java2, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, Java2, KotlinInterface {
override var a: List<Any?>
field = a
override get
override set
constructor(a: List<Any?>) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [1])
}
}
abstract class G : Java1, KotlinInterface, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, KotlinInterface, KotlinInterface2 {
override var a: List<Any?>
field = a
override get
override set
constructor(a: List<Any?>) /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<Any?>) {
}
}
class I : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class J : Java1, Java2, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [""])
}
override fun foo(a: MutableList<Any?>) {
}
}
interface KotlinInterface {
abstract fun bar(): List<Any?>
abstract fun foo(a: List<Any?>)
abstract var a: List<Any?>
abstract get
abstract set
}
interface KotlinInterface2 {
abstract fun bar(): List<*>
abstract fun foo(a: List<*>)
abstract var a: List<*>
abstract get
abstract set
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar() /*!! List<*> */
b.foo(a = mutableListOf<Any?>(elements = [null]))
b.foo(a = null)
val k2: List<Any?>? = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
c.foo(a = null)
val k3: List<Any?> = c.bar()
d.foo(a = listOf<Nothing?>(element = null))
val k4: List<Any?> = d.bar()
e.foo(a = listOf<Nothing?>(element = null))
val k5: List<Any?> = e.bar()
f.foo(a = listOf<Nothing?>(element = null))
val k6: List<Any?> = f.bar()
g.foo(a = listOf<Nothing?>(element = null))
val k7: List<Any?> = g.bar()
h.foo(a = listOf<Nothing?>(element = null))
val k8: List<Any?> = h.bar()
i.foo(a = listOf<Nothing?>(element = null))
val k9: List<Any?> = i.bar() /*!! List<*> */
j.foo(a = mutableListOf<Any?>(elements = [null]))
val k10: List<Any?> = j.bar()
}
@@ -0,0 +1,409 @@
// 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<kotlin.Any?>
// Public signature: /G.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
/* fake */ override fun bar(): List<Any?>
// 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<kotlin.Any?>
// Public signature: /H.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
/* fake */ override fun bar(): List<Any?>
// 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
@@ -0,0 +1,882 @@
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=""
@@ -0,0 +1,223 @@
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 = [""]))
}
@@ -0,0 +1,449 @@
// 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
@@ -0,0 +1,882 @@
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>.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
public abstract fun bar (): kotlin.collections.List<kotlin.Number> declared in <root>.KotlinInterface2
$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
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>.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
public abstract fun bar (): kotlin.collections.List<kotlin.Number> declared in <root>.KotlinInterface2
$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: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.MutableList<out 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=""
@@ -0,0 +1,197 @@
// TARGET_BACKEND: JVM
// FULL_JDK
// WITH_STDLIB
// SEPARATE_SIGNATURE_DUMP_FOR_K2
// ^ ISSUE: KT-66120
// FILE: Java1.java
import java.util.*;
public class Java1 {
public void foo(List<? extends Number> a) { }
public List<? extends Number> bar(){
return null;
}
public void foo2(List<? super Number> a) { }
public List<? super Number> bar2(){
return null;
}
public void foo3(List<?> a) {}
public List<?> bar3(){
return null;
}
}
// FILE: Java2.java
import java.util.List;
public interface Java2 {
public List<Integer> bar();
public List<Number> bar2();
public List<Integer> bar3();
}
// FILE: Java3.java
import java.util.List;
public interface Java3 {
public List<? extends Object> bar();
public void foo3(List<?> a);
public List<?> bar3();
}
// FILE: 1.kt
class A : Java1(), Java2 { //Kotlin ← Java1, Java2
override fun bar(): MutableList<Int> {
return mutableListOf(1)
}
override fun bar2(): MutableList<Number> {
return mutableListOf(1.1)
}
override fun bar3(): MutableList<Int> {
return mutableListOf(1)
}
}
class B : Java1() , KotlinInterface //Kotlin ← Java, Kotlin2
class C : Java1() , KotlinInterface {
override fun foo(a: MutableList<out Number>) { }
override fun bar(): MutableList<out Number> {
return mutableListOf(1)
}
}
class D : Java1(), Java2, KotlinInterface { //Kotlin ← Java1, Java2, Kotlin2
override fun bar(): MutableList<Int> {
return mutableListOf(1)
}
override fun bar2(): MutableList<Number> {
return mutableListOf(1.1)
}
override fun bar3(): MutableList<Int> {
return mutableListOf(1)
}
}
class E : Java1(), KotlinInterface, KotlinInterface2 //Kotlin ← Java, Kotlin1, Kotlin2
class F : Java1(), KotlinInterface, KotlinInterface2 {
override fun bar2(): MutableList<in Number> {
return mutableListOf(1)
}
override fun foo2(a: MutableList<in Number>) { }
}
abstract class G : Java1(), Java2, Java3 { //Kotlin ← Java1, Java2, Java3
override fun bar(): MutableList<Int> {
return mutableListOf(1)
}
override fun bar2(): MutableList<Number> {
return mutableListOf(1.1)
}
override fun bar3(): MutableList<Int> {
return mutableListOf(1)
}
}
class H : G() {
override fun foo(a: MutableList<out Number>) { }
override fun foo2(a: MutableList<in Number>) { }
override fun foo3(a: MutableList<*>) { }
}
interface KotlinInterface {
fun foo(a: MutableList<out Number>)
fun bar(): MutableList<out Number>
fun foo2(a: MutableList<in Number>)
fun bar2(): MutableList<in Number>
fun foo3(a: MutableList<*>)
fun bar3(): MutableList<*>
}
interface KotlinInterface2 {
fun foo(a: List<Number>)
fun bar(): List<Number>
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H){
a.foo(null)
a.foo(mutableListOf(1))
a.foo(listOf(1))
a.bar()
a.foo2(null)
a.foo2(mutableListOf(null))
a.foo2(mutableListOf(1.1))
a.bar2()
a.foo3(null)
a.foo3(mutableListOf(null))
a.foo3(listOf(null))
a.foo3(listOf(""))
a.bar3()
b.foo(null)
b.foo(mutableListOf(1))
b.bar()
b.foo2(null)
b.foo2(mutableListOf(null))
b.foo2(mutableListOf(1.1))
b.bar2()
b.foo3(null)
b.foo3(mutableListOf(null))
b.foo3(mutableListOf(""))
b.bar3()
c.foo(mutableListOf(1))
c.bar()
d.foo(null)
d.foo(mutableListOf(1))
d.bar()
d.foo2(null)
d.foo2(mutableListOf(null))
d.foo2(mutableListOf(1.1))
d.bar2()
d.foo3(null)
d.foo3(mutableListOf(null))
d.foo3(mutableListOf(""))
d.bar3()
e.foo(null)
e.foo(mutableListOf(1))
e.foo(listOf(1))
e.bar()
e.foo2(null)
e.foo2(mutableListOf(null))
e.foo2(mutableListOf(1.1))
e.bar2()
e.foo3(null)
e.foo3(mutableListOf(null))
e.foo3(listOf(null))
e.foo3(listOf(""))
e.bar3()
f.foo2(mutableListOf(null))
f.bar2()
g.foo(null)
g.foo(mutableListOf(1))
g.foo(listOf(1))
g.bar()
g.foo2(null)
g.foo2(mutableListOf(null))
g.foo2(mutableListOf(1.1))
g.bar2()
g.foo3(null)
g.foo3(mutableListOf(null))
g.foo3(listOf(null))
g.foo3(listOf(""))
g.bar3()
h.foo(mutableListOf(1))
h.foo2(mutableListOf(1))
h.foo3(mutableListOf(""))
}
@@ -0,0 +1,223 @@
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 = [""]))
}
@@ -0,0 +1,449 @@
// 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.MutableList<out|kotlin.Number>
// Public signature: /E.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: 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.MutableList<out|kotlin.Number>
// Public signature: /F.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: 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
@@ -0,0 +1,683 @@
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:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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>.B) returnType:kotlin.collections.List<*>
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<*> declared in <root>.B'
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=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open a: kotlin.collections.List<*>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.B'
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=2
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.B, value:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<*>
BLOCK_BODY
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:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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: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:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open a: kotlin.collections.List<*>
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> 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=2
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.D, value:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<*>
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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>.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>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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 <root>.Java1
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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>.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>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.collections.List<kotlin.Any?>
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.F'
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[<root>.KotlinClass]' type=kotlin.collections.List<*> origin=null
$this: GET_VAR '<this>: <root>.F declared in <root>.F.bar' type=<root>.F origin=null
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <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:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.Java1, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java4
$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>.Java4
$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>.Java2, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]'
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>.Java4
$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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=3
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
PROPERTY name:a visibility:public modality:OPEN [var]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private
EXPRESSION_BODY
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"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private' type=kotlin.collections.List<*> origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<set-a>' type=<root>.KotlinClass origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<*> declared in <root>.KotlinClass.<set-a>' type=kotlin.collections.List<*> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<*> declared in <root>.KotlinClass'
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"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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.List<kotlin.Any?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
CLASS INTERFACE name:KotlinInterface2 modality:ABSTRACT visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface2
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$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>.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:ABSTRACT <> ($this:<root>.Java2, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.A' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.A' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.B' type=kotlin.collections.List<*> 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.List<*>): 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 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
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.C' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.D' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k5 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.E' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
VAR name:k6 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.F' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
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<*> 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.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.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
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<*> origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public abstract 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
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
VAR name:k9 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.I' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k10 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,186 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override fun foo(a: List<*>) {
}
override var a: List<*>
override get(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override set(value: List<*>) {
}
}
class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>) {
}
override var a: List<*>
override get(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override set(value: List<*>) {
}
}
class E : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<Any?> {
return super<Java1>.bar()
}
}
class G : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>) {
}
}
abstract class I : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class J : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [3])
}
override fun foo(a: MutableList<Any?>?) {
}
}
open class KotlinClass {
open var a: List<*>
field = mutableListOf<String>(elements = ["1"])
open get
open set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): List<*> {
return mutableListOf<String>(elements = ["1"])
}
open fun foo(a: List<*>) {
}
}
interface KotlinInterface {
abstract fun bar(): List<Any?>
abstract fun foo(a: List<Any?>)
abstract var a: List<Any?>
abstract get
abstract set
}
interface KotlinInterface2 : Java2 {
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.bar() /*~> Unit */
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar()
b.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k2: List<Any?> = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
val k3: List<Any?> = c.bar()
d.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k4: List<Any?> = d.bar()
e.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k5: List<Any?> = e.bar()
f.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k6: List<Any?> = f.bar()
g.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k7: List<Any?> = g.bar()
h.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k8: List<Any?> = h.bar()
i.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k9: List<Any?> = i.bar() /*!! @FlexibleMutability @RawType MutableList<Any?> */
j.foo(a = mutableListOf<Any?>(elements = [null]))
val k10: List<Any?> = j.bar()
}
@@ -0,0 +1,683 @@
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:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java2]
$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>.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: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>.B) returnType:kotlin.collections.List<*>
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<*> declared in <root>.B'
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=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open a: kotlin.collections.List<*>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.B'
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=2
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.B, value:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<*>
BLOCK_BODY
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:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.KotlinInterface]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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: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:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open a: kotlin.collections.List<*>
public abstract a: kotlin.collections.List<kotlin.Any?>
FUN name:<get-a> visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun <get-a> (): kotlin.collections.List<kotlin.Any?> declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> 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=2
FUN name:<set-a> visibility:public modality:OPEN <> ($this:<root>.D, value:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun <set-a> (<set-?>: kotlin.collections.List<kotlin.Any?>): kotlin.Unit declared in <root>.KotlinInterface
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:value index:0 type:kotlin.collections.List<*>
BLOCK_BODY
CLASS CLASS name:E modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.KotlinInterface2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
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>.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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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>.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>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:F modality:FINAL visibility:public superTypes:[<root>.Java1; <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>.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 <root>.Java1
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>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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>.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>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.F) returnType:kotlin.collections.List<kotlin.Any?>
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.KotlinInterface2
$this: VALUE_PARAMETER name:<this> type:<root>.F
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.F'
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1' superQualifier='CLASS IR_EXTERNAL_JAVA_DECLARATION_STUB CLASS name:Java1 modality:OPEN visibility:public superTypes:[<root>.KotlinClass]' type=kotlin.collections.List<*> origin=null
$this: GET_VAR '<this>: <root>.F declared in <root>.F.bar' type=<root>.F origin=null
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:G modality:FINAL visibility:public superTypes:[<root>.Java1; <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:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.H
CONSTRUCTOR visibility:public <> () returnType:<root>.H [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in <root>.Java1'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:H modality:FINAL visibility:public superTypes:[<root>.Java1; <root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
overridden:
public open fun bar (): kotlin.collections.List<*> declared in <root>.Java1
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java1
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java1
public open fun hashCode (): kotlin.Int declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java1
public open fun toString (): kotlin.String declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.H, a:kotlin.collections.List<*>) returnType:kotlin.Unit
overridden:
public open fun foo (a: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.H
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open a: kotlin.collections.List<*>
FUN FAKE_OVERRIDE name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*> [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
FUN FAKE_OVERRIDE name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit [fake_override]
correspondingProperty: PROPERTY FAKE_OVERRIDE name:a visibility:public modality:OPEN [fake_override,var]
overridden:
public open fun <set-a> (<set-?>: kotlin.collections.List<*>): kotlin.Unit declared in <root>.Java1
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.I
CONSTRUCTOR visibility:public <> () returnType:<root>.I [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:I modality:ABSTRACT visibility:public superTypes:[<root>.Java4]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java4
$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>.Java4
$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>.Java2, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.J
CONSTRUCTOR visibility:public <> () returnType:<root>.J [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:J modality:FINAL visibility:public superTypes:[<root>.Java4]'
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>.Java4
$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>.Java4
$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>.Java4
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.J) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.J
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=3
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.J, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java4
$this: VALUE_PARAMETER name:<this> type:<root>.J
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinClass
PROPERTY name:a visibility:public modality:OPEN [var]
FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private
EXPRESSION_BODY
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"
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*>
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun <get-a> (): kotlin.collections.List<*> declared in <root>.KotlinClass'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private' type=kotlin.collections.List<*> origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<get-a>' type=<root>.KotlinClass origin=null
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:OPEN <> ($this:<root>.KotlinClass, <set-?>:kotlin.collections.List<*>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:OPEN [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<*>
BLOCK_BODY
SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:a type:kotlin.collections.List<*> visibility:private' type=kotlin.Unit origin=null
receiver: GET_VAR '<this>: <root>.KotlinClass declared in <root>.KotlinClass.<set-a>' type=<root>.KotlinClass origin=null
value: GET_VAR '<set-?>: kotlin.collections.List<*> declared in <root>.KotlinClass.<set-a>' type=kotlin.collections.List<*> origin=null
CONSTRUCTOR visibility:public <> () returnType:<root>.KotlinClass [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:KotlinClass modality:OPEN visibility:public superTypes:[kotlin.Any]'
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:OPEN <> ($this:<root>.KotlinClass) returnType:kotlin.collections.List<*>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.List<*> declared in <root>.KotlinClass'
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"
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.KotlinClass, a:kotlin.collections.List<*>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinClass
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<*>
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.List<kotlin.Any?>
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN name:foo visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, a:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:a index:0 type:kotlin.collections.List<kotlin.Any?>
PROPERTY name:a visibility:public modality:ABSTRACT [var]
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface) returnType:kotlin.collections.List<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
FUN DEFAULT_PROPERTY_ACCESSOR name:<set-a> visibility:public modality:ABSTRACT <> ($this:<root>.KotlinInterface, <set-?>:kotlin.collections.List<kotlin.Any?>) returnType:kotlin.Unit
correspondingProperty: PROPERTY name:a visibility:public modality:ABSTRACT [var]
$this: VALUE_PARAMETER name:<this> type:<root>.KotlinInterface
VALUE_PARAMETER name:<set-?> index:0 type:kotlin.collections.List<kotlin.Any?>
CLASS INTERFACE name:KotlinInterface2 modality:ABSTRACT visibility:public superTypes:[<root>.Java2]
$this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.KotlinInterface2
FUN FAKE_OVERRIDE name:bar visibility:public modality:ABSTRACT <> ($this:<root>.Java2) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$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>.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:ABSTRACT <> ($this:<root>.Java2, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public abstract fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java2
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D, e:<root>.E, f:<root>.F, g:<root>.G, h:<root>.H, i:<root>.I, j:<root>.J) returnType:kotlin.Unit
VALUE_PARAMETER name:a index:0 type:<root>.A
VALUE_PARAMETER name:b index:1 type:<root>.B
VALUE_PARAMETER name:c index:2 type:<root>.C
VALUE_PARAMETER name:d index:3 type:<root>.D
VALUE_PARAMETER name:e index:4 type:<root>.E
VALUE_PARAMETER name:f index:5 type:<root>.F
VALUE_PARAMETER name:g index:6 type:<root>.G
VALUE_PARAMETER name:h index:7 type:<root>.H
VALUE_PARAMETER name:i index:8 type:<root>.I
VALUE_PARAMETER name:j index:9 type:<root>.J
BLOCK_BODY
TYPE_OP type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.A' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.A' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.B' type=kotlin.collections.List<*> 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.List<*>): 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 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
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.C' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.D' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
VAR name:k5 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<*> declared in <root>.E' type=kotlin.collections.List<*> origin=null
$this: GET_VAR 'e: <root>.E declared in <root>.test' type=<root>.E origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
CONST Null type=kotlin.Nothing? value=null
VAR name:k6 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.List<kotlin.Any?> declared in <root>.F' type=kotlin.collections.List<kotlin.Any?> origin=null
$this: GET_VAR 'f: <root>.F declared in <root>.test' type=<root>.F origin=null
CALL 'public open fun foo (a: kotlin.collections.List<*>): 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
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<*> 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.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.Nothing?> origin=null
<T>: kotlin.Nothing?
elements: VARARG type=kotlin.Array<out kotlin.Nothing?> varargElementType=kotlin.Nothing?
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<*> origin=null
$this: GET_VAR 'h: <root>.H declared in <root>.test' type=<root>.H origin=null
CALL 'public abstract 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
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
VAR name:k9 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<*> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<*>
CALL 'public abstract fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.I' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'i: <root>.I declared in <root>.test' type=<root>.I origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.J' type=kotlin.Unit origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k10 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.J' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'j: <root>.J declared in <root>.test' type=<root>.J origin=null
@@ -0,0 +1,107 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
public class Java1 extends KotlinClass { }
// FILE: Java2.java
import java.util.*;
public interface Java2 {
List a = new ArrayList();
void foo(List a);
List bar();
}
// FILE: Java3.java
public interface Java3 extends Java2 { }
// FILE: Java4.java
public interface Java4 extends KotlinInterface2 { }
// FILE: 1.kt
class A : Java1(), Java2 //Kotlin ← Java1, Java2 ← Kotlin2
class B : Java1(), Java2 {
override fun bar(): List<*> {
return mutableListOf(2)
}
override var a: List<*>
get() = mutableListOf(2)
set(value) {}
override fun foo(a: List<*>) { }
}
class C : Java1(), KotlinInterface // Kotlin ← Java, Kotlin2 ← Kotlin3
class D : Java1(), KotlinInterface {
override var a: List<*>
get() = mutableListOf(2)
set(value) {}
override fun foo(a: List<*>) { }
}
class E : Java1(), KotlinInterface2 // Kotlin ← Java, Kotlin2 ← Java2, Kotlin3
class F : Java1(), KotlinInterface2 {
override fun bar(): List<Any?> {
return super.bar()
}
}
class G : Java1(), Java3 // Kotlin ← Java1, Java2 ← Java3, Kotlin2
class H : Java1(), Java3 {
override fun foo(a: List<*>) { }
}
abstract class I : Java4 //Kotlin ← Java ← Kotlin ← Java
class J : Java4 {
override fun foo(a: MutableList<Any?>?) { }
override fun bar(): MutableList<Any?> {
return mutableListOf(3)
}
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.bar()
a.foo(mutableListOf(null))
val k: List<Any?> = a.bar()
b.foo(mutableListOf(null))
val k2: List<Any?> = b.bar()
c.foo(listOf(null))
val k3: List<Any?> = c.bar()
d.foo(mutableListOf(null))
val k4: List<Any?> = d.bar()
e.foo(mutableListOf(null))
val k5: List<Any?> = e.bar()
f.foo(mutableListOf(null))
val k6: List<Any?> = f.bar()
g.foo(mutableListOf(null))
val k7: List<Any?> = g.bar()
h.foo(mutableListOf(null))
val k8: List<Any?> = h.bar()
i.foo(mutableListOf(null))
val k9: List<Any?> = i.bar()
j.foo(mutableListOf(null))
val k10: List<Any?> = j.bar()
}
open class KotlinClass {
open var a: List<*> = mutableListOf("1")
open fun foo(a: List<*>) {
}
open fun bar(): List<*> {
return mutableListOf("1")
}
}
interface KotlinInterface {
var a: List<Any?>
fun foo(a: List<Any?>)
fun bar(): List<Any?>
}
interface KotlinInterface2 : Java2
@@ -0,0 +1,186 @@
class A : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class B : Java1, Java2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override fun foo(a: List<*>) {
}
override var a: List<*>
override get(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override set(value: List<*>) {
}
}
class C : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class D : Java1, KotlinInterface {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>) {
}
override var a: List<*>
override get(): List<*> {
return mutableListOf<Int>(elements = [2])
}
override set(value: List<*>) {
}
}
class E : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class F : Java1, KotlinInterface2 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun bar(): List<Any?> {
return super<Java1>.bar()
}
}
class G : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
}
class H : Java1, Java3 {
constructor() /* primary */ {
super/*Java1*/()
/* <init>() */
}
override fun foo(a: List<*>) {
}
}
abstract class I : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
}
class J : Java4 {
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [3])
}
override fun foo(a: MutableList<Any?>?) {
}
}
open class KotlinClass {
open var a: List<*>
field = mutableListOf<String>(elements = ["1"])
open get
open set
constructor() /* primary */ {
super/*Any*/()
/* <init>() */
}
open fun bar(): List<*> {
return mutableListOf<String>(elements = ["1"])
}
open fun foo(a: List<*>) {
}
}
interface KotlinInterface {
abstract fun bar(): List<Any?>
abstract fun foo(a: List<Any?>)
abstract var a: List<Any?>
abstract get
abstract set
}
interface KotlinInterface2 : Java2 {
}
fun test(a: A, b: B, c: C, d: D, e: E, f: F, g: G, h: H, i: I, j: J) {
a.bar() /*~> Unit */
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar()
b.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k2: List<Any?> = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
val k3: List<Any?> = c.bar()
d.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k4: List<Any?> = d.bar()
e.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k5: List<Any?> = e.bar()
f.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k6: List<Any?> = f.bar()
g.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k7: List<Any?> = g.bar()
h.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k8: List<Any?> = h.bar()
i.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k9: List<Any?> = i.bar() /*!! List<*> */
j.foo(a = mutableListOf<Any?>(elements = [null]))
val k10: List<Any?> = j.bar()
}
@@ -0,0 +1,465 @@
// 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 JVM_IR:
// Mangled name: A#bar(){}kotlin.collections.List<*>
// Public signature: /A.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: A#foo(kotlin.collections.List<*>){}
// Public signature: /A.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
/* fake */ override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: A{}a
// Public signature: /A.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: A#<get-a>(){}kotlin.collections.List<*>
// Public signature: /A.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: A#<set-a>(kotlin.collections.List<*>){}
// Public signature: /A.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): Unit
}
// CHECK:
// Mangled name: B
// Public signature: /B|null[0]
class B : Java1, Java2 {
// 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.List<*>
// Public signature: /B.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
override fun bar(): List<*>
// CHECK:
// Mangled name: B#foo(kotlin.collections.List<*>){}
// Public signature: /B.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: List<*>
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.collections.List<*>
// Public signature: /B.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
override get(): List<*>
// CHECK:
// Mangled name: B#<set-a>(kotlin.collections.List<*>){}
// Public signature: /B.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
override set(value: List<*>): 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#bar(){}kotlin.collections.List<*>
// Public signature: /C.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: C#foo(kotlin.collections.List<*>){}
// Public signature: /C.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
/* fake */ override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: C{}a
// Public signature: /C.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: C#<get-a>(){}kotlin.collections.List<*>
// Public signature: /C.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: C#<set-a>(kotlin.collections.List<*>){}
// Public signature: /C.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): 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<*>
// Public signature: /D.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: D#foo(kotlin.collections.List<*>){}
// Public signature: /D.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
override var a: List<*>
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.collections.List<*>
// Public signature: /D.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
override get(): List<*>
// CHECK:
// Mangled name: D#<set-a>(kotlin.collections.List<*>){}
// Public signature: /D.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
override set(value: List<*>): Unit
}
// CHECK:
// Mangled name: E
// Public signature: /E|null[0]
class E : Java1, 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<*>
// Public signature: /E.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
/* fake */ override fun bar(): List<*>
// CHECK:
// Mangled name: E#foo(kotlin.collections.List<*>){}
// Public signature: /E.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
/* fake */ override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: E{}a
// Public signature: /E.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: E#<get-a>(){}kotlin.collections.List<*>
// Public signature: /E.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: E#<set-a>(kotlin.collections.List<*>){}
// Public signature: /E.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): Unit
}
// CHECK:
// Mangled name: F
// Public signature: /F|null[0]
class F : Java1, KotlinInterface2 {
// CHECK:
// Mangled name: F#<init>(){}
// Public signature: /F.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK:
// Mangled name: F#foo(kotlin.collections.List<*>){}
// Public signature: /F.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
/* fake */ override fun foo(a: List<*>): Unit
// CHECK JVM_IR:
// Mangled name: F#bar(){}kotlin.collections.List<kotlin.Any?>
// Public signature: /F.bar|7957968205035256403[0]
// Public signature debug description: bar(){}kotlin.collections.List<kotlin.Any?>
override fun bar(): List<Any?>
// CHECK:
// Mangled name: F{}a
// Public signature: /F.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: F#<get-a>(){}kotlin.collections.List<*>
// Public signature: /F.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: F#<set-a>(kotlin.collections.List<*>){}
// Public signature: /F.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): Unit
}
// CHECK:
// Mangled name: G
// Public signature: /G|null[0]
class G : Java1, Java3 {
// CHECK:
// Mangled name: G#<init>(){}
// Public signature: /G.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: G#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.List<*>){}
// Public signature: /G.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
/* fake */ override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: G{}a
// Public signature: /G.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: G#<get-a>(){}kotlin.collections.List<*>
// Public signature: /G.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: G#<set-a>(kotlin.collections.List<*>){}
// Public signature: /G.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): Unit
}
// CHECK:
// Mangled name: H
// Public signature: /H|null[0]
class H : Java1, Java3 {
// CHECK:
// Mangled name: H#<init>(){}
// Public signature: /H.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: H#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<*>){}
// Public signature: /H.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
override fun foo(a: List<*>): Unit
// CHECK:
// Mangled name: H{}a
// Public signature: /H.a|-1200697420457237799[0]
// Public signature debug description: {}a
/* fake */ override var a: List<*>
// CHECK JVM_IR:
// Mangled name: H#<get-a>(){}kotlin.collections.List<*>
// Public signature: /H.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
/* fake */ override get(): List<*>
// CHECK:
// Mangled name: H#<set-a>(kotlin.collections.List<*>){}
// Public signature: /H.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
/* fake */ override set(<set-?>: List<*>): Unit
}
// CHECK:
// Mangled name: I
// Public signature: /I|null[0]
abstract class I : Java4 {
// 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?>?
abstract /* 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?>?){}
abstract /* fake */ override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: J
// Public signature: /J|null[0]
class J : Java4 {
// 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|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: KotlinClass
// Public signature: /KotlinClass|null[0]
open class KotlinClass {
// CHECK:
// Mangled name: KotlinClass{}a
// Public signature: /KotlinClass.a|-1200697420457237799[0]
// Public signature debug description: {}a
open var a: List<*>
// CHECK JVM_IR:
// Mangled name: KotlinClass#<get-a>(){}kotlin.collections.List<*>
// Public signature: /KotlinClass.a.<get-a>|7420054975261155862[0]
// Public signature debug description: <get-a>(){}kotlin.collections.List<*>
open get
// CHECK:
// Mangled name: KotlinClass#<set-a>(kotlin.collections.List<*>){}
// Public signature: /KotlinClass.a.<set-a>|-1742626468354620590[0]
// Public signature debug description: <set-a>(kotlin.collections.List<*>){}
open set
// CHECK:
// Mangled name: KotlinClass#<init>(){}
// Public signature: /KotlinClass.<init>|-5645683436151566731[0]
// Public signature debug description: <init>(){}
constructor() /* primary */
// CHECK JVM_IR:
// Mangled name: KotlinClass#bar(){}kotlin.collections.List<*>
// Public signature: /KotlinClass.bar|9146304308611802181[0]
// Public signature debug description: bar(){}kotlin.collections.List<*>
open fun bar(): List<*>
// CHECK:
// Mangled name: KotlinClass#foo(kotlin.collections.List<*>){}
// Public signature: /KotlinClass.foo|2923589974738683515[0]
// Public signature debug description: foo(kotlin.collections.List<*>){}
open fun foo(a: List<*>): 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 : Java2 {
// CHECK JVM_IR:
// Mangled name: KotlinInterface2#bar(){}kotlin.collections.MutableList<kotlin.Any?>?
// Public signature: /KotlinInterface2.bar|2549972836650137141[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>?
abstract /* fake */ override fun bar(): MutableList<Any?>?
// CHECK:
// Mangled name: KotlinInterface2#foo(kotlin.collections.MutableList<kotlin.Any?>?){}
// Public signature: /KotlinInterface2.foo|1823979372554704958[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>?){}
abstract /* fake */ override fun foo(a: MutableList<Any?>?): Unit
}
// 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
@@ -0,0 +1,203 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
PROPERTY name:a visibility:public modality:FINAL [val]
FUN name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.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>.Java3, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
BLOCK_BODY
PROPERTY name:a visibility:public modality:FINAL [val]
FUN name:<get-a> visibility:public modality:FINAL <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?>? [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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 foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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: CONST Null type=kotlin.Nothing? value=null
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=@[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.C' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.D' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
@@ -0,0 +1,73 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
override fun foo(a: MutableList<Any?>?) {
}
val a: MutableList<Any?>
get(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [1])
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
override fun foo(a: MutableList<Any?>) {
}
val a: MutableList<Any?>
get(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
}
fun test(a: A, b: B, c: C, d: D) {
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar() /*!! @FlexibleMutability @RawType MutableList<Any?> */
b.foo(a = mutableListOf<Any?>(elements = [null]))
b.foo(a = null)
val k2: List<Any?>? = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
c.foo(a = null)
val k3: List<Any?> = c.bar() /*!! @FlexibleMutability MutableList<@EnhancedNullability Any?> */
d.foo(a = mutableListOf<Any?>(elements = [null]))
val k4: List<Any?> = d.bar()
}
@@ -0,0 +1,215 @@
FILE fqName:<root> fileName:/1.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java1) returnType:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? [fake_override]
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.Java1
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]
$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>.Java2'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:B modality:FINAL visibility:public superTypes:[<root>.Java2]'
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean [fake_override,operator]
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String [fake_override]
overridden:
public open fun toString (): kotlin.String declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.B, a:kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java2
$this: VALUE_PARAMETER name:<this> type:<root>.B
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>?
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?
PROPERTY name:a visibility:public modality:FINAL [val]
FUN name:<get-a> visibility:public modality:FINAL <> ($this:<root>.B) returnType:kotlin.collections.MutableList<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.B
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B'
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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=1
CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:C modality:FINAL visibility:public superTypes:[<root>.Java3]'
FUN FAKE_OVERRIDE name:bar visibility:public modality:OPEN <> ($this:<root>.Java3) returnType:@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? [fake_override]
annotations:
Override
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<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>.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>.Java3, a:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?) returnType:kotlin.Unit [fake_override]
annotations:
Override
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.Java3
VALUE_PARAMETER name:a index:0 type:@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<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>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>?
CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<root>.Java3]
$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>.Java3'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:D modality:FINAL visibility:public superTypes:[<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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
VALUE_PARAMETER name:other index:0 type:kotlin.Any?
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int [fake_override]
overridden:
public open fun hashCode (): kotlin.Int declared in <root>.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>.Java3
$this: VALUE_PARAMETER name:<this> type:kotlin.Any
FUN name:bar visibility:public modality:OPEN <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Any?>
overridden:
public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:foo visibility:public modality:OPEN <> ($this:<root>.D, a:kotlin.collections.MutableList<kotlin.Any?>) returnType:kotlin.Unit
overridden:
public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): kotlin.Unit declared in <root>.Java3
$this: VALUE_PARAMETER name:<this> type:<root>.D
VALUE_PARAMETER name:a index:0 type:kotlin.collections.MutableList<kotlin.Any?>
BLOCK_BODY
PROPERTY FAKE_OVERRIDE name:a visibility:public modality:FINAL [fake_override,var]
overridden:
public final a: @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>?
PROPERTY name:a visibility:public modality:FINAL [val]
FUN name:<get-a> visibility:public modality:FINAL <> ($this:<root>.D) returnType:kotlin.collections.MutableList<kotlin.Any?>
correspondingProperty: PROPERTY name:a visibility:public modality:FINAL [val]
$this: VALUE_PARAMETER name:<this> type:<root>.D
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-a> (): kotlin.collections.MutableList<kotlin.Any?> 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Int type=kotlin.Int value=2
FUN name:test visibility:public modality:FINAL <> (a:<root>.A, b:<root>.B, c:<root>.C, d:<root>.D) 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
BLOCK_BODY
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<*> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<*>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? declared in <root>.A' type=@[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>? origin=null
$this: GET_VAR 'a: <root>.A declared in <root>.test' type=<root>.A origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>?): 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
VAR name:k2 type:kotlin.collections.List<kotlin.Any?>? [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.B' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'b: <root>.B declared in <root>.test' type=<root>.B origin=null
CALL 'public open fun foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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 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 foo (a: @[FlexibleNullability] @[FlexibleMutability] @[RawType] kotlin.collections.MutableList<kotlin.Any?>?): 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: CONST Null type=kotlin.Nothing? value=null
VAR name:k3 type:kotlin.collections.List<kotlin.Any?> [val]
TYPE_OP type=kotlin.collections.List<@[EnhancedNullability] kotlin.Any?> origin=IMPLICIT_NOTNULL typeOperand=kotlin.collections.List<@[EnhancedNullability] kotlin.Any?>
CALL 'public open fun bar (): @[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? declared in <root>.C' type=@[FlexibleNullability] @[FlexibleMutability] kotlin.collections.MutableList<@[EnhancedNullability] kotlin.Any?>? origin=null
$this: GET_VAR 'c: <root>.C declared in <root>.test' type=<root>.C origin=null
CALL 'public open fun foo (a: kotlin.collections.MutableList<kotlin.Any?>): 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.Any?> origin=null
<T>: kotlin.Any?
elements: VARARG type=kotlin.Array<out kotlin.Any?> varargElementType=kotlin.Any?
CONST Null type=kotlin.Nothing? value=null
VAR name:k4 type:kotlin.collections.List<kotlin.Any?> [val]
CALL 'public open fun bar (): kotlin.collections.MutableList<kotlin.Any?> declared in <root>.D' type=kotlin.collections.MutableList<kotlin.Any?> origin=null
$this: GET_VAR 'd: <root>.D declared in <root>.test' type=<root>.D origin=null
@@ -0,0 +1,66 @@
// TARGET_BACKEND: JVM
// WITH_STDLIB
// FILE: Java1.java
import java.util.*;
public class Java1 {
public List a = new ArrayList();
public void foo(List a) { };
public List bar() {
return null;
};
}
// FILE: Java2.java
public class Java2 extends Java1 { }
// FILE: Java3.java
import java.util.*;
public class Java3 extends Java1 {
public List<Object> a = new ArrayList<Object>(1);
@Override
public void foo(List a) { }
@Override
public List<Object> bar() {
return null;
}
}
// FILE: 1.kt
class A : Java2() //Kotlin ← Java1 ← Java2
class B : Java2() {
val a: MutableList<Any?>
get() = mutableListOf(1)
override fun bar(): MutableList<Any?> {
return mutableListOf(2)
}
override fun foo(a: MutableList<Any?>?) { }
}
class C : Java3() // Kotlin ← Java1(override) ← Java2
class D : Java3() {
override fun foo(a: MutableList<Any?>) { }
override fun bar(): MutableList<Any?> {
return mutableListOf(2)
}
val a: MutableList<Any?>
get() = mutableListOf(2)
}
fun test(a: A, b: B, c: C, d: D) {
a.foo(null)
a.foo(mutableListOf(null))
val k: List<Any?> = a.bar()
b.foo(mutableListOf(null))
b.foo(null)
val k2: List<Any?>? = b.bar()
c.foo(listOf(null))
c.foo(null)
val k3: List<Any?> = c.bar()
d.foo(mutableListOf(null))
val k4: List<Any?> = d.bar()
}
@@ -0,0 +1,73 @@
class A : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
}
class B : Java2 {
constructor() /* primary */ {
super/*Java2*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
override fun foo(a: MutableList<Any?>?) {
}
val a: MutableList<Any?>
get(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [1])
}
}
class C : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
}
class D : Java3 {
constructor() /* primary */ {
super/*Java3*/()
/* <init>() */
}
override fun bar(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
override fun foo(a: MutableList<Any?>) {
}
val a: MutableList<Any?>
get(): MutableList<Any?> {
return mutableListOf<Any?>(elements = [2])
}
}
fun test(a: A, b: B, c: C, d: D) {
a.foo(a = null)
a.foo(a = mutableListOf<Nothing?>(elements = [null]))
val k: List<Any?> = a.bar() /*!! List<*> */
b.foo(a = mutableListOf<Any?>(elements = [null]))
b.foo(a = null)
val k2: List<Any?>? = b.bar()
c.foo(a = listOf<Nothing?>(element = null))
c.foo(a = null)
val k3: List<Any?> = c.bar() /*!! List<@EnhancedNullability Any?> */
d.foo(a = mutableListOf<Any?>(elements = [null]))
val k4: List<Any?> = d.bar()
}
@@ -0,0 +1,125 @@
// CHECK:
// Mangled name: A
// Public signature: /A|null[0]
class A : Java2 {
// 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 : Java2 {
// 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|2717899934593573586[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: B{}a
// Public signature: /B.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: MutableList<Any?>
// CHECK JVM_IR:
// Mangled name: B#<get-a>(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /B.a.<get-a>|-8966201178303059902[0]
// Public signature debug description: <get-a>(){}kotlin.collections.MutableList<kotlin.Any?>
get(): MutableList<Any?>
}
// CHECK:
// Mangled name: C
// Public signature: /C|null[0]
class C : Java3 {
// 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.MutableList<kotlin.Any?{EnhancedNullability}>?
// Public signature: /C.bar|282174274715366837[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?{EnhancedNullability}>?
@Override
/* fake */ override fun bar(): MutableList<@EnhancedNullability 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?>?){}
@Override
/* fake */ override fun foo(a: MutableList<Any?>?): Unit
}
// CHECK:
// Mangled name: D
// Public signature: /D|null[0]
class D : Java3 {
// 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.MutableList<kotlin.Any?>
// Public signature: /D.bar|2717899934593573586[0]
// Public signature debug description: bar(){}kotlin.collections.MutableList<kotlin.Any?>
override fun bar(): MutableList<Any?>
// CHECK:
// Mangled name: D#foo(kotlin.collections.MutableList<kotlin.Any?>){}
// Public signature: /D.foo|-988911284811620369[0]
// Public signature debug description: foo(kotlin.collections.MutableList<kotlin.Any?>){}
override fun foo(a: MutableList<Any?>): Unit
// CHECK:
// Mangled name: D{}a
// Public signature: /D.a|-1200697420457237799[0]
// Public signature debug description: {}a
val a: MutableList<Any?>
// CHECK JVM_IR:
// Mangled name: D#<get-a>(){}kotlin.collections.MutableList<kotlin.Any?>
// Public signature: /D.a.<get-a>|-8966201178303059902[0]
// Public signature debug description: <get-a>(){}kotlin.collections.MutableList<kotlin.Any?>
get(): MutableList<Any?>
}
// CHECK:
// Mangled name: #test(A;B;C;D){}
// Public signature: /test|7656439746344069424[0]
// Public signature debug description: test(A;B;C;D){}
fun test(a: A, b: B, c: C, d: D): Unit

Some files were not shown because too many files have changed in this diff Show More