Files
kotlin-fork/compiler/testData/ir/irText/fakeOverrides/generics/genericMethodOverrideOnComplexHierarchy.fir.ir.txt
T
Kirill Rakhman 69a7bf7f68 [FIR] Add equality constraint from expected type for some synthetic function calls
This fixes some cases where we infer some type variable inside one
of the branches to Nothing instead of the expected type because Nothing
appeared in some other branch.

Specifically, we add an equality instead of a subtype constraint during
completion of calls to synthetic functions for if/when, try and !!.
We don't do it when the call contains a (possibly nested) elvis or is
inside the RHS of an assignment.
Otherwise, we would prevent some smart-casts.

#KT-65882 Fixed
2024-03-05 17:38:59 +00:00

784 lines
60 KiB
Plaintext
Vendored

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=T of <root>.E.bar 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