blob: 1dd63f2efd4b6fb94617db056fed5d5f9e04b1d9 [file]
FILE fqName:kotlin fileName:/arrayAsserts.kt
FUN name:arraysEqual visibility:private modality:FINAL returnType:kotlin.Boolean
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:first index:0 type:kotlin.Array<out T of kotlin.arraysEqual>
VALUE_PARAMETER kind:Regular name:second index:1 type:kotlin.Array<out T of kotlin.arraysEqual>
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQEQ
ARG arg0: GET_VAR 'first: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
ARG arg1: GET_VAR 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN type=kotlin.Nothing from='private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin'
CONST Boolean type=kotlin.Boolean value=true
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
ARG arg0: CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR 'first: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
ARG arg1: CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN type=kotlin.Nothing from='private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin'
CONST Boolean type=kotlin.Boolean value=false
BLOCK type=kotlin.Unit origin=FOR_LOOP
VAR FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.IntIterator [val]
CALL 'public open fun iterator (): kotlin.collections.IntIterator declared in kotlin.ranges.IntRange' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
ARG <this>: CALL 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=RANGE
ARG <this>: CONST Int type=kotlin.Int value=0
ARG other: CALL 'public final fun minus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=MINUS
ARG <this>: CALL 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR 'first: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
ARG other: CONST Int type=kotlin.Int value=1
WHILE label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.IntIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
ARG <this>: GET_VAR 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
VAR FOR_LOOP_VARIABLE name:index type:kotlin.Int [val]
CALL 'public final fun next (): kotlin.Int declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
ARG <this>: GET_VAR 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
BLOCK type=kotlin.Unit origin=null
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL 'private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin' type=kotlin.Boolean origin=null
ARG first: CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=T of kotlin.arraysEqual origin=GET_ARRAY_ELEMENT
ARG <this>: GET_VAR 'first: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
ARG index: GET_VAR 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
ARG second: CALL 'public final fun get (index: kotlin.Int): T of kotlin.Array declared in kotlin.Array' type=T of kotlin.arraysEqual origin=GET_ARRAY_ELEMENT
ARG <this>: GET_VAR 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
ARG index: GET_VAR 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
then: RETURN type=kotlin.Nothing from='private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin'
CONST Boolean type=kotlin.Boolean value=false
RETURN type=kotlin.Nothing from='private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin'
CONST Boolean type=kotlin.Boolean value=true
FUN name:assertArrayEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:expected index:0 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER kind:Regular name:actual index:1 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL 'private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin' type=kotlin.Boolean origin=null
TYPE_ARG T: T of kotlin.assertArrayEquals
ARG first: GET_VAR 'expected: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
ARG second: GET_VAR 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
then: BLOCK type=kotlin.Unit origin=null
VAR name:msg type:kotlin.String [val]
WHEN type=kotlin.String origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
ARG arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST String type=kotlin.String value=""
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value=", message = '"
TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
CONST String type=kotlin.String value="'"
CALL 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Unexpected array: expected = '"
GET_VAR 'expected: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST String type=kotlin.String value="', actual = '"
GET_VAR 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST String type=kotlin.String value="'"
GET_VAR 'val msg: kotlin.String declared in kotlin.assertArrayEquals' type=kotlin.String origin=null
FUN name:equal visibility:private modality:FINAL returnType:kotlin.Boolean
VALUE_PARAMETER kind:Regular name:first index:0 type:kotlin.Any?
VALUE_PARAMETER kind:Regular name:second index:1 type:kotlin.Any?
BLOCK_BODY
RETURN type=kotlin.Nothing from='private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin'
WHEN type=kotlin.Boolean origin=IF
BRANCH
if: WHEN type=kotlin.Boolean origin=ANDAND
BRANCH
if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
then: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: CONST Boolean type=kotlin.Boolean value=false
then: BLOCK type=kotlin.Boolean origin=null
CALL 'private final fun arraysEqual <T> (first: kotlin.Array<out T of kotlin.arraysEqual>, second: kotlin.Array<out T of kotlin.arraysEqual>): kotlin.Boolean declared in kotlin' type=kotlin.Boolean origin=null
TYPE_ARG T: kotlin.Any?
ARG first: TYPE_OP type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG second: TYPE_OP type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: BLOCK type=kotlin.Boolean origin=null
CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG arg1: GET_VAR 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
FILE fqName:kotlin fileName:/asserts.kt
FUN name:assertEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:expected index:0 type:T of kotlin.assertEquals
VALUE_PARAMETER kind:Regular name:actual index:1 type:T of kotlin.assertEquals
VALUE_PARAMETER kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQ
ARG arg0: GET_VAR 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
ARG arg1: GET_VAR 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
then: BLOCK type=kotlin.Unit origin=null
VAR name:msg type:kotlin.String [val]
WHEN type=kotlin.String origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
ARG arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST String type=kotlin.String value=""
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value=", message = '"
TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
CONST String type=kotlin.String value="'"
CALL 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Unexpected value: expected = '"
GET_VAR 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST String type=kotlin.String value="', actual = '"
GET_VAR 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST String type=kotlin.String value="'"
GET_VAR 'val msg: kotlin.String declared in kotlin.assertEquals' type=kotlin.String origin=null
FUN name:assertFails visibility:public modality:FINAL returnType:kotlin.Throwable
VALUE_PARAMETER kind:Regular name:block index:0 type:kotlin.Function0<kotlin.Unit>
BLOCK_BODY
TRY type=kotlin.Unit
try: BLOCK type=kotlin.Unit origin=null
CALL 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Unit origin=INVOKE
ARG <this>: GET_VAR 'block: kotlin.Function0<kotlin.Unit> declared in kotlin.assertFails' type=kotlin.Function0<kotlin.Unit> origin=VARIABLE_AS_FUNCTION
CATCH parameter=val t: kotlin.Throwable declared in kotlin.assertFails
VAR CATCH_PARAMETER name:t type:kotlin.Throwable [val]
BLOCK type=kotlin.Nothing origin=null
RETURN type=kotlin.Nothing from='public final fun assertFails (block: kotlin.Function0<kotlin.Unit>): kotlin.Throwable declared in kotlin'
GET_VAR 'val t: kotlin.Throwable declared in kotlin.assertFails' type=kotlin.Throwable origin=null
CALL 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: CONST String type=kotlin.String value="Expected an exception to be thrown, but was completed successfully."
FUN name:assertFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL 'public final fun assertEquals <T> (expected: T of kotlin.assertEquals, actual: T of kotlin.assertEquals, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
TYPE_ARG T: kotlin.Boolean
ARG expected: CONST Boolean type=kotlin.Boolean value=false
ARG actual: GET_VAR 'actual: kotlin.Boolean declared in kotlin.assertFalse' type=kotlin.Boolean origin=null
ARG message: GET_VAR 'message: kotlin.String? declared in kotlin.assertFalse' type=kotlin.String? origin=null
FUN name:assertNotEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:illegal index:0 type:T of kotlin.assertNotEquals
VALUE_PARAMETER kind:Regular name:actual index:1 type:T of kotlin.assertNotEquals
VALUE_PARAMETER kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
ARG arg1: GET_VAR 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
then: BLOCK type=kotlin.Unit origin=null
VAR name:msg type:kotlin.String [val]
WHEN type=kotlin.String origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
ARG arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST String type=kotlin.String value=""
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value=", message = '"
TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
CONST String type=kotlin.String value="'"
CALL 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Illegal value: illegal = '"
GET_VAR 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST String type=kotlin.String value="', actual = '"
GET_VAR 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST String type=kotlin.String value="'"
GET_VAR 'val msg: kotlin.String declared in kotlin.assertNotEquals' type=kotlin.String origin=null
FUN name:assertSame visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:expected index:0 type:T of kotlin.assertSame
VALUE_PARAMETER kind:Regular name:actual index:1 type:T of kotlin.assertSame
VALUE_PARAMETER kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
WHEN type=kotlin.Unit origin=IF
BRANCH
if: CALL 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQEQ
ARG <this>: CALL 'public final fun EQEQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EXCLEQEQ
ARG arg0: GET_VAR 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
ARG arg1: GET_VAR 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
then: BLOCK type=kotlin.Unit origin=null
VAR name:msg type:kotlin.String [val]
WHEN type=kotlin.String origin=IF
BRANCH
if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ
ARG arg0: GET_VAR 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
ARG arg1: CONST Null type=kotlin.Nothing? value=null
then: CONST String type=kotlin.String value=""
BRANCH
if: CONST Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value=", message = '"
TYPE_OP type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
CONST String type=kotlin.String value="'"
CALL 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION type=kotlin.String
CONST String type=kotlin.String value="Expected same instances: expected = '"
GET_VAR 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST String type=kotlin.String value="', actual = '"
GET_VAR 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST String type=kotlin.String value="'"
GET_VAR 'val msg: kotlin.String declared in kotlin.assertSame' type=kotlin.String origin=null
FUN name:assertTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL 'public final fun assertEquals <T> (expected: T of kotlin.assertEquals, actual: T of kotlin.assertEquals, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
TYPE_ARG T: kotlin.Boolean
ARG expected: CONST Boolean type=kotlin.Boolean value=true
ARG actual: GET_VAR 'actual: kotlin.Boolean declared in kotlin.assertTrue' type=kotlin.Boolean origin=null
ARG message: GET_VAR 'message: kotlin.String? declared in kotlin.assertTrue' type=kotlin.String? origin=null
FUN name:testFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY
CALL 'public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=null
FUN name:testTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY
CALL 'public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=null
FILE fqName:kotlin fileName:/fail.kt
FUN name:fail visibility:public modality:FINAL returnType:kotlin.Nothing
VALUE_PARAMETER kind:Regular name:message index:0 type:kotlin.String?
EXPRESSION_BODY
CONST Null type=kotlin.Nothing? value=null
BLOCK_BODY
THROW type=kotlin.Nothing
CONSTRUCTOR_CALL 'public constructor <init> (message: kotlin.String?) declared in kotlin.Throwable' type=kotlin.Throwable origin=null
ARG message: GET_VAR 'message: kotlin.String? declared in kotlin.fail' type=kotlin.String? origin=null
FILE fqName:<root> fileName:/generticReferences.kt
CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A<T of <root>.A>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR visibility:public returnType:<root>.A<T of <root>.A> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN name:bar visibility:public modality:FINAL returnType:T of <root>.A
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A<T of <root>.A>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.A
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A'
GET_VAR 'x: T of <root>.A declared in <root>.A.bar' type=T of <root>.A origin=null
CLASS CLASS name:A2 modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A2<T of <root>.A2>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
CONSTRUCTOR visibility:public returnType:<root>.A2<T of <root>.A2> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A2 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN name:bar2 visibility:public modality:FINAL returnType:T of <root>.A2
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A2<T of <root>.A2>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.A2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2'
GET_VAR 'x: T of <root>.A2 declared in <root>.A2.bar2' type=T of <root>.A2 origin=null
CLASS CLASS name:A3 modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A3<T of <root>.A3>
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.A3>] reified:false
CONSTRUCTOR visibility:public returnType:<root>.A3<T of <root>.A3> [primary]
BLOCK_BODY
DELEGATING_CONSTRUCTOR_CALL 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A3 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN name:bar3 visibility:public modality:FINAL returnType:T of <root>.A3
VALUE_PARAMETER kind:DispatchReceiver name:<this> index:0 type:<root>.A3<T of <root>.A3>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.A3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3'
GET_VAR 'x: T of <root>.A3 declared in <root>.A3.bar3' type=T of <root>.A3 origin=null
FUN name:box visibility:public modality:FINAL returnType:kotlin.String
BLOCK_BODY
VAR name:r1 type:kotlin.Function1<kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction1<@[ParameterName(name = "x")] kotlin.Int, kotlin.Int> origin=null reflectionTarget='public final fun foo <T> (x: T of <root>.foo): T of <root>.foo declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction1): R of kotlin.reflect.KFunction1 declared in kotlin.reflect.KFunction1
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo (p0: @[ParameterName(name = "x")] kotlin.Int): kotlin.Int declared in <root>.box'
CALL 'public final fun foo <T> (x: T of <root>.foo): T of <root>.foo declared in <root>' type=kotlin.Int origin=null
TYPE_ARG T: kotlin.Int
ARG x: GET_VAR 'p0: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.foo' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR name:r2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> origin=null reflectionTarget='public final fun foo <T> (<this>: <root>.A<T of <root>.foo>, x: T of <root>.foo): T of <root>.foo declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo (p0: <root>.A<kotlin.Int>, p1: @[ParameterName(name = "x")] kotlin.Int): kotlin.Int declared in <root>.box'
CALL 'public final fun foo <T> (<this>: <root>.A<T of <root>.foo>, x: T of <root>.foo): T of <root>.foo declared in <root>' type=kotlin.Int origin=null
TYPE_ARG T: kotlin.Int
ARG <this>: GET_VAR 'p0: <root>.A<kotlin.Int> declared in <root>.box.foo' type=<root>.A<kotlin.Int> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.foo' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR name:r3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<*>, *, kotlin.Any?> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<*>, kotlin.Any?, kotlin.Any?> origin=null reflectionTarget='public final fun foo <T> (<this>: <root>.A<T of <root>.foo>, x: T of <root>.foo): T of <root>.foo declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Any?
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.Any?
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo (p0: <root>.A<*>, p1: kotlin.Any?): kotlin.Any? declared in <root>.box'
CALL 'public final fun foo <T> (<this>: <root>.A<T of <root>.foo>, x: T of <root>.foo): T of <root>.foo declared in <root>' type=kotlin.Any? origin=null
TYPE_ARG T: kotlin.Any?
ARG <this>: TYPE_OP type=<root>.A<kotlin.Any?> origin=IMPLICIT_CAST typeOperand=<root>.A<kotlin.Any?>
GET_VAR 'p0: <root>.A<*> declared in <root>.box.foo' type=<root>.A<*> origin=null
ARG x: GET_VAR 'p1: kotlin.Any? declared in <root>.box.foo' type=kotlin.Any? origin=null
VAR name:r4 type:kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> origin=null reflectionTarget='public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar (p0: <root>.A<kotlin.Int>, p1: @[ParameterName(name = "x")] kotlin.Int): kotlin.Int declared in <root>.box'
CALL 'public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A' type=kotlin.Int origin=null
ARG <this>: GET_VAR 'p0: <root>.A<kotlin.Int> declared in <root>.box.bar' type=<root>.A<kotlin.Int> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.bar' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR name:r5 type:kotlin.reflect.KFunction2<<root>.A<*>, *, kotlin.Any?> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A<*>, kotlin.Any?, kotlin.Any?> origin=null reflectionTarget='public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar visibility:local modality:FINAL returnType:kotlin.Any?
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.Any?
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar (p0: <root>.A<*>, p1: kotlin.Any?): kotlin.Any? declared in <root>.box'
CALL 'public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A' type=kotlin.Any? origin=null
ARG <this>: GET_VAR 'p0: <root>.A<*> declared in <root>.box.bar' type=<root>.A<*> origin=null
ARG x: GET_VAR 'p1: kotlin.Any? declared in <root>.box.bar' type=kotlin.Any? origin=null
VAR name:s1 type:kotlin.Function1<kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction1<@[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun foo2 <T> (x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction1): R of kotlin.reflect.KFunction1 declared in kotlin.reflect.KFunction1
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo2 (p0: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun foo2 <T> (x: T of <root>.foo2): T of <root>.foo2 declared in <root>' type=kotlin.String origin=null
TYPE_ARG T: kotlin.String
ARG x: GET_VAR 'p0: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:s2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun foo2 <T> (<this>: <root>.A2<T of <root>.foo2>, x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A2<kotlin.String>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo2 (p0: <root>.A2<kotlin.String>, p1: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun foo2 <T> (<this>: <root>.A2<T of <root>.foo2>, x: T of <root>.foo2): T of <root>.foo2 declared in <root>' type=kotlin.String origin=null
TYPE_ARG T: kotlin.String
ARG <this>: GET_VAR 'p0: <root>.A2<kotlin.String> declared in <root>.box.foo2' type=<root>.A2<kotlin.String> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:s3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<*>, *, kotlin.CharSequence> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<*>, kotlin.CharSequence, kotlin.CharSequence> origin=null reflectionTarget='public final fun foo2 <T> (<this>: <root>.A2<T of <root>.foo2>, x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.CharSequence
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A2<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.CharSequence
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo2 (p0: <root>.A2<*>, p1: kotlin.CharSequence): kotlin.CharSequence declared in <root>.box'
CALL 'public final fun foo2 <T> (<this>: <root>.A2<T of <root>.foo2>, x: T of <root>.foo2): T of <root>.foo2 declared in <root>' type=kotlin.CharSequence origin=null
TYPE_ARG T: kotlin.CharSequence
ARG <this>: TYPE_OP type=<root>.A2<kotlin.CharSequence> origin=IMPLICIT_CAST typeOperand=<root>.A2<kotlin.CharSequence>
GET_VAR 'p0: <root>.A2<*> declared in <root>.box.foo2' type=<root>.A2<*> origin=null
ARG x: GET_VAR 'p1: kotlin.CharSequence declared in <root>.box.foo2' type=kotlin.CharSequence origin=null
VAR name:s4 type:kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A2<kotlin.String>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar2 (p0: <root>.A2<kotlin.String>, p1: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2' type=kotlin.String origin=null
ARG <this>: GET_VAR 'p0: <root>.A2<kotlin.String> declared in <root>.box.bar2' type=<root>.A2<kotlin.String> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.bar2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:s5 type:kotlin.reflect.KFunction2<<root>.A2<*>, *, kotlin.CharSequence> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A2<*>, kotlin.CharSequence, kotlin.CharSequence> origin=null reflectionTarget='public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar2 visibility:local modality:FINAL returnType:kotlin.CharSequence
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A2<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.CharSequence
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar2 (p0: <root>.A2<*>, p1: kotlin.CharSequence): kotlin.CharSequence declared in <root>.box'
CALL 'public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2' type=kotlin.CharSequence origin=null
ARG <this>: GET_VAR 'p0: <root>.A2<*> declared in <root>.box.bar2' type=<root>.A2<*> origin=null
ARG x: GET_VAR 'p1: kotlin.CharSequence declared in <root>.box.bar2' type=kotlin.CharSequence origin=null
VAR name:t1 type:kotlin.Function1<kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction1<@[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun foo3 <T> (x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction1): R of kotlin.reflect.KFunction1 declared in kotlin.reflect.KFunction1
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo3 (p0: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun foo3 <T> (x: T of <root>.foo3): T of <root>.foo3 declared in <root>' type=kotlin.String origin=null
TYPE_ARG T: kotlin.String
ARG x: GET_VAR 'p0: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:t2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun foo3 <T> (<this>: <root>.A3<T of <root>.foo3>, x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A3<kotlin.String>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo3 (p0: <root>.A3<kotlin.String>, p1: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun foo3 <T> (<this>: <root>.A3<T of <root>.foo3>, x: T of <root>.foo3): T of <root>.foo3 declared in <root>' type=kotlin.String origin=null
TYPE_ARG T: kotlin.String
ARG <this>: GET_VAR 'p0: <root>.A3<kotlin.String> declared in <root>.box.foo3' type=<root>.A3<kotlin.String> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:t3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<*>, *, kotlin.Comparable<*>> [val]
RICH_FUNCTION_REFERENCE type=@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<*>, kotlin.Comparable<*>, kotlin.Comparable<*>> origin=null reflectionTarget='public final fun foo3 <T> (<this>: <root>.A3<T of <root>.foo3>, x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.Comparable<*>
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A3<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.Comparable<*>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun foo3 (p0: <root>.A3<*>, p1: kotlin.Comparable<*>): kotlin.Comparable<*> declared in <root>.box'
CALL 'public final fun foo3 <T> (<this>: <root>.A3<T of <root>.foo3>, x: T of <root>.foo3): T of <root>.foo3 declared in <root>' type=kotlin.Comparable<*> origin=null
TYPE_ARG T: kotlin.Comparable<*>
ARG <this>: TYPE_OP type=<root>.A3<kotlin.Comparable<*>> origin=IMPLICIT_CAST typeOperand=<root>.A3<kotlin.Comparable<*>>
GET_VAR 'p0: <root>.A3<*> declared in <root>.box.foo3' type=<root>.A3<*> origin=null
ARG x: GET_VAR 'p1: kotlin.Comparable<*> declared in <root>.box.foo3' type=kotlin.Comparable<*> origin=null
VAR name:t4 type:kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> origin=null reflectionTarget='public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A3<kotlin.String>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar3 (p0: <root>.A3<kotlin.String>, p1: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL 'public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3' type=kotlin.String origin=null
ARG <this>: GET_VAR 'p0: <root>.A3<kotlin.String> declared in <root>.box.bar3' type=<root>.A3<kotlin.String> origin=null
ARG x: GET_VAR 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.bar3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR name:t5 type:kotlin.reflect.KFunction2<<root>.A3<*>, *, kotlin.Comparable<*>> [val]
RICH_FUNCTION_REFERENCE type=kotlin.reflect.KFunction2<<root>.A3<*>, kotlin.Comparable<*>, kotlin.Comparable<*>> origin=null reflectionTarget='public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3'
overriddenFunctionSymbol: public abstract fun invoke (p1: P1 of kotlin.reflect.KFunction2, p2: P2 of kotlin.reflect.KFunction2): R of kotlin.reflect.KFunction2 declared in kotlin.reflect.KFunction2
invoke: FUN LOCAL_FUNCTION_FOR_LAMBDA name:bar3 visibility:local modality:FINAL returnType:kotlin.Comparable<*>
VALUE_PARAMETER kind:Regular name:p0 index:0 type:<root>.A3<*>
VALUE_PARAMETER kind:Regular name:p1 index:1 type:kotlin.Comparable<*>
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun bar3 (p0: <root>.A3<*>, p1: kotlin.Comparable<*>): kotlin.Comparable<*> declared in <root>.box'
CALL 'public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3' type=kotlin.Comparable<*> origin=null
ARG <this>: GET_VAR 'p0: <root>.A3<*> declared in <root>.box.bar3' type=<root>.A3<*> origin=null
ARG x: GET_VAR 'p1: kotlin.Comparable<*> declared in <root>.box.bar3' type=kotlin.Comparable<*> origin=null
RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST String type=kotlin.String value="OK"
FUN name:foo visibility:public modality:FINAL returnType:T of <root>.foo
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:0 type:<root>.A<T of <root>.foo>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.foo
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo <T> (<this>: <root>.A<T of <root>.foo>, x: T of <root>.foo): T of <root>.foo declared in <root>'
CALL 'public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A' type=T of <root>.foo origin=null
ARG <this>: GET_VAR '<this>: <root>.A<T of <root>.foo> declared in <root>.foo' type=<root>.A<T of <root>.foo> origin=IMPLICIT_ARGUMENT
ARG x: GET_VAR 'x: T of <root>.foo declared in <root>.foo' type=T of <root>.foo origin=null
FUN name:foo visibility:public modality:FINAL returnType:T of <root>.foo
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER kind:Regular name:x index:0 type:T of <root>.foo
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo <T> (x: T of <root>.foo): T of <root>.foo declared in <root>'
GET_VAR 'x: T of <root>.foo declared in <root>.foo' type=T of <root>.foo origin=null
FUN name:foo2 visibility:public modality:FINAL returnType:T of <root>.foo2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:0 type:<root>.A2<T of <root>.foo2>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.foo2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo2 <T> (<this>: <root>.A2<T of <root>.foo2>, x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
CALL 'public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2' type=T of <root>.foo2 origin=null
ARG <this>: GET_VAR '<this>: <root>.A2<T of <root>.foo2> declared in <root>.foo2' type=<root>.A2<T of <root>.foo2> origin=IMPLICIT_ARGUMENT
ARG x: GET_VAR 'x: T of <root>.foo2 declared in <root>.foo2' type=T of <root>.foo2 origin=null
FUN name:foo2 visibility:public modality:FINAL returnType:T of <root>.foo2
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
VALUE_PARAMETER kind:Regular name:x index:0 type:T of <root>.foo2
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo2 <T> (x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
GET_VAR 'x: T of <root>.foo2 declared in <root>.foo2' type=T of <root>.foo2 origin=null
FUN name:foo3 visibility:public modality:FINAL returnType:T of <root>.foo3
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo3>] reified:false
VALUE_PARAMETER kind:ExtensionReceiver name:<this> index:0 type:<root>.A3<T of <root>.foo3>
VALUE_PARAMETER kind:Regular name:x index:1 type:T of <root>.foo3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo3 <T> (<this>: <root>.A3<T of <root>.foo3>, x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
CALL 'public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3' type=T of <root>.foo3 origin=null
ARG <this>: GET_VAR '<this>: <root>.A3<T of <root>.foo3> declared in <root>.foo3' type=<root>.A3<T of <root>.foo3> origin=IMPLICIT_ARGUMENT
ARG x: GET_VAR 'x: T of <root>.foo3 declared in <root>.foo3' type=T of <root>.foo3 origin=null
FUN name:foo3 visibility:public modality:FINAL returnType:T of <root>.foo3
TYPE_PARAMETER name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo3>] reified:false
VALUE_PARAMETER kind:Regular name:x index:0 type:T of <root>.foo3
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun foo3 <T> (x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
GET_VAR 'x: T of <root>.foo3 declared in <root>.foo3' type=T of <root>.foo3 origin=null