blob: b4c555474e2c6837819e5728bfb493a0c8eefee5 [file]
FILE fqName:kotlin fileName:/arrayAsserts.kt lineStartOffsets: [0, 15, 16, 115, 157, 229, 310, 316, 318, 319, 401, 439, 487, 526, 588, 594, 610, 612, 613, 660, 711, 746, 752, 763, 787]
FUN[327, 611] name:arraysEqual visibility:private modality:FINAL returnType:kotlin.Boolean
TYPE_PARAMETER[332, 333] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[347, 366] kind:Regular name:first index:0 type:kotlin.Array<out T of kotlin.arraysEqual>
VALUE_PARAMETER[368, 388] kind:Regular name:second index:1 type:kotlin.Array<out T of kotlin.arraysEqual>
BLOCK_BODY[399, 611]
WHEN[405, 438] type=kotlin.Unit origin=IF
BRANCH[409, 438]
if: CALL[409, 425] '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[409, 414] '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[419, 425] 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN[427, 438] 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[434, 438] Boolean type=kotlin.Boolean value=true
WHEN[443, 486] type=kotlin.Unit origin=IF
BRANCH[447, 486]
if: CALL[447, 472] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[447, 472] '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[453, 457] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[447, 452] '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[468, 472] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[461, 467] 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN[474, 486] 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[481, 486] Boolean type=kotlin.Boolean value=false
BLOCK[491, 593] type=kotlin.Unit origin=FOR_LOOP
VAR[505, 522] FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.IntIterator [val]
CALL[505, 522] 'public open fun iterator (): kotlin.collections.IntIterator declared in kotlin.ranges.IntRange' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
ARG <this>: CALL[505, 522] 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=RANGE
ARG <this>: CONST[505, 506] Int type=kotlin.Int value=0
ARG other: CALL[508, 522] 'public final fun minus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=MINUS
ARG <this>: CALL[514, 518] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[508, 513] '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[521, 522] Int type=kotlin.Int value=1
WHILE[491, 593] label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL[505, 522] 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.IntIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
ARG <this>: GET_VAR[505, 522] 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
body: BLOCK[491, 593] type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
VAR[496, 501] FOR_LOOP_VARIABLE name:index type:kotlin.Int [val]
CALL[505, 522] 'public final fun next (): kotlin.Int declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
ARG <this>: GET_VAR[505, 522] 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
BLOCK[524, 593] type=kotlin.Unit origin=null
WHEN[534, 587] type=kotlin.Unit origin=IF
BRANCH[538, 587]
if: CALL[538, 573] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL[539, 573] 'private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin' type=kotlin.Boolean origin=null
ARG first: CALL[545, 557] '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[545, 550] '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[551, 556] 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
ARG second: CALL[559, 572] '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[559, 565] '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[566, 571] 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
then: RETURN[575, 587] 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[582, 587] Boolean type=kotlin.Boolean value=false
RETURN[598, 609] 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[605, 609] Boolean type=kotlin.Boolean value=true
FUN[16, 317] name:assertArrayEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[21, 22] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[42, 64] kind:Regular name:expected index:0 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER[66, 86] kind:Regular name:actual index:1 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER[88, 111] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[107, 111]
CONST[107, 111] Null type=kotlin.Nothing? value=null
BLOCK_BODY[113, 317]
WHEN[119, 315] type=kotlin.Unit origin=IF
BRANCH[123, 315]
if: CALL[123, 153] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL[124, 153] '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[136, 144] '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[146, 152] 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
then: BLOCK[155, 315] type=kotlin.Unit origin=null
VAR[165, 228] name:msg type:kotlin.String [val]
WHEN[175, 228] type=kotlin.String origin=IF
BRANCH[179, 198]
if: CALL[179, 194] '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[179, 186] 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
ARG arg1: CONST[190, 194] Null type=kotlin.Nothing? value=null
then: CONST[196, 198] String type=kotlin.String value=""
BRANCH[204, 228]
if: CONST[204, 228] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[204, 228] type=kotlin.String
CONST[205, 218] String type=kotlin.String value=", message = '"
TYPE_OP[219, 226] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[219, 226] 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
CONST[226, 227] String type=kotlin.String value="'"
CALL[237, 309] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[242, 308] type=kotlin.String
CONST[243, 273] String type=kotlin.String value="Unexpected array: expected = '"
GET_VAR[274, 282] 'expected: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST[282, 295] String type=kotlin.String value="', actual = '"
GET_VAR[296, 302] 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST[302, 303] String type=kotlin.String value="'"
GET_VAR[304, 307] 'val msg: kotlin.String declared in kotlin.assertArrayEquals' type=kotlin.String origin=null
FUN[621, 792] name:equal visibility:private modality:FINAL returnType:kotlin.Boolean
VALUE_PARAMETER[631, 642] kind:Regular name:first index:0 type:kotlin.Any?
VALUE_PARAMETER[644, 656] kind:Regular name:second index:1 type:kotlin.Any?
BLOCK_BODY[664, 792]
RETURN[792, 792] type=kotlin.Nothing from='private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin'
WHEN[664, 792] type=kotlin.Boolean origin=IF
BRANCH[668, 751]
if: WHEN[668, 707] type=kotlin.Boolean origin=ANDAND
BRANCH[668, 707]
if: TYPE_OP[668, 685] type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR[668, 673] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
then: TYPE_OP[689, 707] type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR[689, 695] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH[689, 707]
if: CONST[689, 707] Boolean type=kotlin.Boolean value=true
then: CONST[689, 707] Boolean type=kotlin.Boolean value=false
then: BLOCK[709, 751] type=kotlin.Boolean origin=null
CALL[719, 745] '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[731, 736] type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR[731, 736] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG second: TYPE_OP[738, 744] type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR[738, 744] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH[761, 792]
if: CONST[761, 792] Boolean type=kotlin.Boolean value=true
then: BLOCK[761, 792] type=kotlin.Boolean origin=null
CALL[771, 786] '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[771, 776] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG arg1: GET_VAR[780, 786] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
FILE fqName:kotlin fileName:/asserts.kt lineStartOffsets: [0, 15, 142, 186, 187, 259, 289, 361, 442, 448, 450, 451, 525, 554, 626, 702, 708, 710, 711, 781, 812, 884, 972, 978, 980, 981, 1076, 1077, 1174, 1175, 1208, 1242, 1244, 1245, 1279, 1314, 1316, 1317, 1365, 1375, 1391, 1420, 1437, 1443, 1523]
FUN[187, 449] name:assertEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[192, 193] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[208, 219] kind:Regular name:expected index:0 type:T of kotlin.assertEquals
VALUE_PARAMETER[221, 230] kind:Regular name:actual index:1 type:T of kotlin.assertEquals
VALUE_PARAMETER[232, 255] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[251, 255]
CONST[251, 255] Null type=kotlin.Nothing? value=null
BLOCK_BODY[257, 449]
WHEN[263, 447] type=kotlin.Unit origin=IF
BRANCH[267, 447]
if: CALL[267, 285] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[267, 285] '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[267, 275] 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
ARG arg1: GET_VAR[279, 285] 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
then: BLOCK[287, 447] type=kotlin.Unit origin=null
VAR[297, 360] name:msg type:kotlin.String [val]
WHEN[307, 360] type=kotlin.String origin=IF
BRANCH[311, 330]
if: CALL[311, 326] '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[311, 318] 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
ARG arg1: CONST[322, 326] Null type=kotlin.Nothing? value=null
then: CONST[328, 330] String type=kotlin.String value=""
BRANCH[336, 360]
if: CONST[336, 360] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[336, 360] type=kotlin.String
CONST[337, 350] String type=kotlin.String value=", message = '"
TYPE_OP[351, 358] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[351, 358] 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
CONST[358, 359] String type=kotlin.String value="'"
CALL[369, 441] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[374, 440] type=kotlin.String
CONST[375, 405] String type=kotlin.String value="Unexpected value: expected = '"
GET_VAR[406, 414] 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST[414, 427] String type=kotlin.String value="', actual = '"
GET_VAR[428, 434] 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST[434, 435] String type=kotlin.String value="'"
GET_VAR[436, 439] 'val msg: kotlin.String declared in kotlin.assertEquals' type=kotlin.String origin=null
FUN[1317, 1524] name:assertFails visibility:public modality:FINAL returnType:kotlin.Throwable
VALUE_PARAMETER[1333, 1350] kind:Regular name:block index:0 type:kotlin.Function0<kotlin.Unit>
BLOCK_BODY[1363, 1524]
TRY[1369, 1442] type=kotlin.Unit
try: BLOCK[1373, 1396] type=kotlin.Unit origin=null
CALL[1383, 1390] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Unit origin=INVOKE
ARG <this>: GET_VAR[1383, 1388] 'block: kotlin.Function0<kotlin.Unit> declared in kotlin.assertFails' type=kotlin.Function0<kotlin.Unit> origin=VARIABLE_AS_FUNCTION
CATCH[1397, 1442] parameter=val t: kotlin.Throwable declared in kotlin.assertFails
VAR[1404, 1416] CATCH_PARAMETER name:t type:kotlin.Throwable [val]
BLOCK[1418, 1442] type=kotlin.Nothing origin=null
RETURN[1428, 1436] type=kotlin.Nothing from='public final fun assertFails (block: kotlin.Function0<kotlin.Unit>): kotlin.Throwable declared in kotlin'
GET_VAR[1435, 1436] 'val t: kotlin.Throwable declared in kotlin.assertFails' type=kotlin.Throwable origin=null
CALL[1447, 1522] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: CONST[1452, 1521] String type=kotlin.String value="Expected an exception to be thrown, but was completed successfully."
FUN[1077, 1173] name:assertFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1093, 1108] kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER[1110, 1133] kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY[1129, 1133]
CONST[1129, 1133] Null type=kotlin.Nothing? value=null
BLOCK_BODY[1137, 1173]
RETURN[1173, 1173] type=kotlin.Nothing from='public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL[1137, 1173] '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[1150, 1155] Boolean type=kotlin.Boolean value=false
ARG actual: GET_VAR[1157, 1163] 'actual: kotlin.Boolean declared in kotlin.assertFalse' type=kotlin.Boolean origin=null
ARG message: GET_VAR[1165, 1172] 'message: kotlin.String? declared in kotlin.assertFalse' type=kotlin.String? origin=null
FUN[451, 709] name:assertNotEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[456, 457] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[475, 485] kind:Regular name:illegal index:0 type:T of kotlin.assertNotEquals
VALUE_PARAMETER[487, 496] kind:Regular name:actual index:1 type:T of kotlin.assertNotEquals
VALUE_PARAMETER[498, 521] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[517, 521]
CONST[517, 521] Null type=kotlin.Nothing? value=null
BLOCK_BODY[523, 709]
WHEN[529, 707] type=kotlin.Unit origin=IF
BRANCH[533, 707]
if: CALL[533, 550] '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[533, 540] 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
ARG arg1: GET_VAR[544, 550] 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
then: BLOCK[552, 707] type=kotlin.Unit origin=null
VAR[562, 625] name:msg type:kotlin.String [val]
WHEN[572, 625] type=kotlin.String origin=IF
BRANCH[576, 595]
if: CALL[576, 591] '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[576, 583] 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
ARG arg1: CONST[587, 591] Null type=kotlin.Nothing? value=null
then: CONST[593, 595] String type=kotlin.String value=""
BRANCH[601, 625]
if: CONST[601, 625] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[601, 625] type=kotlin.String
CONST[602, 615] String type=kotlin.String value=", message = '"
TYPE_OP[616, 623] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[616, 623] 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
CONST[623, 624] String type=kotlin.String value="'"
CALL[634, 701] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[639, 700] type=kotlin.String
CONST[640, 666] String type=kotlin.String value="Illegal value: illegal = '"
GET_VAR[667, 674] 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST[674, 687] String type=kotlin.String value="', actual = '"
GET_VAR[688, 694] 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST[694, 695] String type=kotlin.String value="'"
GET_VAR[696, 699] 'val msg: kotlin.String declared in kotlin.assertNotEquals' type=kotlin.String origin=null
FUN[711, 979] name:assertSame visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[716, 717] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[730, 741] kind:Regular name:expected index:0 type:T of kotlin.assertSame
VALUE_PARAMETER[743, 752] kind:Regular name:actual index:1 type:T of kotlin.assertSame
VALUE_PARAMETER[754, 777] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[773, 777]
CONST[773, 777] Null type=kotlin.Nothing? value=null
BLOCK_BODY[779, 979]
WHEN[785, 977] type=kotlin.Unit origin=IF
BRANCH[789, 977]
if: CALL[789, 808] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQEQ
ARG <this>: CALL[789, 808] '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[789, 797] 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
ARG arg1: GET_VAR[802, 808] 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
then: BLOCK[810, 977] type=kotlin.Unit origin=null
VAR[820, 883] name:msg type:kotlin.String [val]
WHEN[830, 883] type=kotlin.String origin=IF
BRANCH[834, 853]
if: CALL[834, 849] '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[834, 841] 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
ARG arg1: CONST[845, 849] Null type=kotlin.Nothing? value=null
then: CONST[851, 853] String type=kotlin.String value=""
BRANCH[859, 883]
if: CONST[859, 883] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[859, 883] type=kotlin.String
CONST[860, 873] String type=kotlin.String value=", message = '"
TYPE_OP[874, 881] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[874, 881] 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
CONST[881, 882] String type=kotlin.String value="'"
CALL[892, 971] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[897, 970] type=kotlin.String
CONST[898, 935] String type=kotlin.String value="Expected same instances: expected = '"
GET_VAR[936, 944] 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST[944, 957] String type=kotlin.String value="', actual = '"
GET_VAR[958, 964] 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST[964, 965] String type=kotlin.String value="'"
GET_VAR[966, 969] 'val msg: kotlin.String declared in kotlin.assertSame' type=kotlin.String origin=null
FUN[981, 1075] name:assertTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[996, 1011] kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER[1013, 1036] kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY[1032, 1036]
CONST[1032, 1036] Null type=kotlin.Nothing? value=null
BLOCK_BODY[1040, 1075]
RETURN[1075, 1075] type=kotlin.Nothing from='public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL[1040, 1075] '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[1053, 1057] Boolean type=kotlin.Boolean value=true
ARG actual: GET_VAR[1059, 1065] 'actual: kotlin.Boolean declared in kotlin.assertTrue' type=kotlin.Boolean origin=null
ARG message: GET_VAR[1067, 1074] 'message: kotlin.String? declared in kotlin.assertTrue' type=kotlin.String? origin=null
FUN[1245, 1315] name:testFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1259, 1275] kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY[1277, 1315]
CALL[1283, 1313] 'public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL[1295, 1298] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR[1295, 1296] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL[1302, 1312] 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP[1300, 1301] type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR[1300, 1301] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=null
FUN[1175, 1243] name:testTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1188, 1204] kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY[1206, 1243]
CALL[1212, 1241] 'public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL[1223, 1226] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR[1223, 1224] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL[1230, 1240] 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP[1228, 1229] type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR[1228, 1229] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=null
FILE fqName:kotlin fileName:/fail.kt lineStartOffsets: [0, 15, 142, 186, 187, 232, 261]
FUN[187, 262] name:fail visibility:public modality:FINAL returnType:kotlin.Nothing
VALUE_PARAMETER[196, 219] kind:Regular name:message index:0 type:kotlin.String?
EXPRESSION_BODY[215, 219]
CONST[215, 219] Null type=kotlin.Nothing? value=null
BLOCK_BODY[230, 262]
THROW[236, 260] type=kotlin.Nothing
CONSTRUCTOR_CALL[242, 260] 'public constructor <init> (message: kotlin.String?) declared in kotlin.Throwable' type=kotlin.Throwable origin=null
ARG message: GET_VAR[252, 259] 'message: kotlin.String? declared in kotlin.fail' type=kotlin.String? origin=null
FILE fqName:<root> fileName:/generticReferences.kt lineStartOffsets: [0, 11, 35, 36, 37, 50, 75, 77, 78, 103, 138, 139, 167, 193, 195, 196, 237, 290, 291, 292, 321, 347, 349, 350, 392, 446, 447, 448, 468, 501, 526, 549, 574, 597, 598, 599, 639, 669, 694, 724, 749, 750, 790, 820, 845, 875, 900, 901, 917, 919]
CLASS[37, 76] CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER[37, 76] INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A<T of <root>.A>
TYPE_PARAMETER[45, 46] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
CONSTRUCTOR[37, 76] visibility:public returnType:<root>.A<T of <root>.A> [primary]
BLOCK_BODY[37, 76]
DELEGATING_CONSTRUCTOR_CALL[37, 76] 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL[37, 76] classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN[-2, -2] FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER[-2, -2] kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN[54, 74] name:bar visibility:public modality:FINAL returnType:T of <root>.A
VALUE_PARAMETER[54, 74] kind:DispatchReceiver name:<this> index:0 type:<root>.A<T of <root>.A>
VALUE_PARAMETER[62, 66] kind:Regular name:x index:1 type:T of <root>.A
BLOCK_BODY[73, 74]
RETURN[74, 74] type=kotlin.Nothing from='public final fun bar (x: T of <root>.A): T of <root>.A declared in <root>.A'
GET_VAR[73, 74] 'x: T of <root>.A declared in <root>.A.bar' type=T of <root>.A origin=null
CLASS[139, 194] CLASS name:A2 modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER[139, 194] INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A2<T of <root>.A2>
TYPE_PARAMETER[148, 163] name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
CONSTRUCTOR[139, 194] visibility:public returnType:<root>.A2<T of <root>.A2> [primary]
BLOCK_BODY[139, 194]
DELEGATING_CONSTRUCTOR_CALL[139, 194] 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL[139, 194] classDescriptor='CLASS CLASS name:A2 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN[-2, -2] FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER[-2, -2] kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN[171, 192] name:bar2 visibility:public modality:FINAL returnType:T of <root>.A2
VALUE_PARAMETER[171, 192] kind:DispatchReceiver name:<this> index:0 type:<root>.A2<T of <root>.A2>
VALUE_PARAMETER[180, 184] kind:Regular name:x index:1 type:T of <root>.A2
BLOCK_BODY[191, 192]
RETURN[192, 192] type=kotlin.Nothing from='public final fun bar2 (x: T of <root>.A2): T of <root>.A2 declared in <root>.A2'
GET_VAR[191, 192] 'x: T of <root>.A2 declared in <root>.A2.bar2' type=T of <root>.A2 origin=null
CLASS[292, 348] CLASS name:A3 modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER[292, 348] INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.A3<T of <root>.A3>
TYPE_PARAMETER[301, 317] name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.A3>] reified:false
CONSTRUCTOR[292, 348] visibility:public returnType:<root>.A3<T of <root>.A3> [primary]
BLOCK_BODY[292, 348]
DELEGATING_CONSTRUCTOR_CALL[292, 348] 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL[292, 348] classDescriptor='CLASS CLASS name:A3 modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUN[-2, -2] FAKE_OVERRIDE name:equals visibility:public modality:OPEN returnType:kotlin.Boolean [fake_override,operator]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
VALUE_PARAMETER[-2, -2] kind:Regular name:other index:1 type:kotlin.Any?
overridden:
public open fun equals (other: kotlin.Any?): kotlin.Boolean declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN returnType:kotlin.Int [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun hashCode (): kotlin.Int declared in kotlin.Any
FUN[-2, -2] FAKE_OVERRIDE name:toString visibility:public modality:OPEN returnType:kotlin.String [fake_override]
VALUE_PARAMETER[-2, -2] kind:DispatchReceiver name:<this> index:0 type:kotlin.Any
overridden:
public open fun toString (): kotlin.String declared in kotlin.Any
FUN[325, 346] name:bar3 visibility:public modality:FINAL returnType:T of <root>.A3
VALUE_PARAMETER[325, 346] kind:DispatchReceiver name:<this> index:0 type:<root>.A3<T of <root>.A3>
VALUE_PARAMETER[334, 338] kind:Regular name:x index:1 type:T of <root>.A3
BLOCK_BODY[345, 346]
RETURN[346, 346] type=kotlin.Nothing from='public final fun bar3 (x: T of <root>.A3): T of <root>.A3 declared in <root>.A3'
GET_VAR[345, 346] 'x: T of <root>.A3 declared in <root>.A3.bar3' type=T of <root>.A3 origin=null
FUN[448, 918] name:box visibility:public modality:FINAL returnType:kotlin.String
BLOCK_BODY[466, 918]
VAR[472, 500] name:r1 type:kotlin.Function1<kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE[495, 500] 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[495, 500] LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo (p0: @[ParameterName(name = "x")] kotlin.Int): kotlin.Int declared in <root>.box'
CALL[495, 500] '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[495, 500] 'p0: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.foo' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR[505, 525] name:r2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE[514, 525] 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[514, 525] LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[514, 525] '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[514, 525] 'p0: <root>.A<kotlin.Int> declared in <root>.box.foo' type=<root>.A<kotlin.Int> origin=null
ARG x: GET_VAR[514, 525] 'p1: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.foo' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR[530, 548] name:r3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A<*>, *, kotlin.Any?> [val]
RICH_FUNCTION_REFERENCE[539, 548] 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[539, 548] LOCAL_FUNCTION_FOR_LAMBDA name:foo visibility:local modality:FINAL returnType:kotlin.Any?
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.Any?
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo (p0: <root>.A<*>, p1: kotlin.Any?): kotlin.Any? declared in <root>.box'
CALL[539, 548] '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[539, 548] type=<root>.A<kotlin.Any?> origin=IMPLICIT_CAST typeOperand=<root>.A<kotlin.Any?>
GET_VAR[539, 548] 'p0: <root>.A<*> declared in <root>.box.foo' type=<root>.A<*> origin=null
ARG x: GET_VAR[539, 548] 'p1: kotlin.Any? declared in <root>.box.foo' type=kotlin.Any? origin=null
VAR[553, 573] name:r4 type:kotlin.reflect.KFunction2<<root>.A<kotlin.Int>, @[ParameterName(name = "x")] kotlin.Int, kotlin.Int> [val]
RICH_FUNCTION_REFERENCE[562, 573] 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[562, 573] LOCAL_FUNCTION_FOR_LAMBDA name:bar visibility:local modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A<kotlin.Int>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.Int
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[562, 573] '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[562, 573] 'p0: <root>.A<kotlin.Int> declared in <root>.box.bar' type=<root>.A<kotlin.Int> origin=null
ARG x: GET_VAR[562, 573] 'p1: @[ParameterName(name = "x")] kotlin.Int declared in <root>.box.bar' type=@[ParameterName(name = "x")] kotlin.Int origin=null
VAR[578, 596] name:r5 type:kotlin.reflect.KFunction2<<root>.A<*>, *, kotlin.Any?> [val]
RICH_FUNCTION_REFERENCE[587, 596] 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[587, 596] LOCAL_FUNCTION_FOR_LAMBDA name:bar visibility:local modality:FINAL returnType:kotlin.Any?
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.Any?
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun bar (p0: <root>.A<*>, p1: kotlin.Any?): kotlin.Any? declared in <root>.box'
CALL[587, 596] '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[587, 596] 'p0: <root>.A<*> declared in <root>.box.bar' type=<root>.A<*> origin=null
ARG x: GET_VAR[587, 596] 'p1: kotlin.Any? declared in <root>.box.bar' type=kotlin.Any? origin=null
VAR[603, 638] name:s1 type:kotlin.Function1<kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[632, 638] 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[632, 638] LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo2 (p0: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL[632, 638] '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[632, 638] 'p0: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[643, 668] name:s2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[652, 668] 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[652, 668] LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A2<kotlin.String>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[652, 668] '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[652, 668] 'p0: <root>.A2<kotlin.String> declared in <root>.box.foo2' type=<root>.A2<kotlin.String> origin=null
ARG x: GET_VAR[652, 668] 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[673, 693] name:s3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A2<*>, *, kotlin.CharSequence> [val]
RICH_FUNCTION_REFERENCE[682, 693] 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[682, 693] LOCAL_FUNCTION_FOR_LAMBDA name:foo2 visibility:local modality:FINAL returnType:kotlin.CharSequence
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A2<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.CharSequence
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo2 (p0: <root>.A2<*>, p1: kotlin.CharSequence): kotlin.CharSequence declared in <root>.box'
CALL[682, 693] '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[682, 693] type=<root>.A2<kotlin.CharSequence> origin=IMPLICIT_CAST typeOperand=<root>.A2<kotlin.CharSequence>
GET_VAR[682, 693] 'p0: <root>.A2<*> declared in <root>.box.foo2' type=<root>.A2<*> origin=null
ARG x: GET_VAR[682, 693] 'p1: kotlin.CharSequence declared in <root>.box.foo2' type=kotlin.CharSequence origin=null
VAR[698, 723] name:s4 type:kotlin.reflect.KFunction2<<root>.A2<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[707, 723] 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[707, 723] LOCAL_FUNCTION_FOR_LAMBDA name:bar2 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A2<kotlin.String>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[707, 723] '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[707, 723] 'p0: <root>.A2<kotlin.String> declared in <root>.box.bar2' type=<root>.A2<kotlin.String> origin=null
ARG x: GET_VAR[707, 723] 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.bar2' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[728, 748] name:s5 type:kotlin.reflect.KFunction2<<root>.A2<*>, *, kotlin.CharSequence> [val]
RICH_FUNCTION_REFERENCE[737, 748] 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[737, 748] LOCAL_FUNCTION_FOR_LAMBDA name:bar2 visibility:local modality:FINAL returnType:kotlin.CharSequence
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A2<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.CharSequence
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun bar2 (p0: <root>.A2<*>, p1: kotlin.CharSequence): kotlin.CharSequence declared in <root>.box'
CALL[737, 748] '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[737, 748] 'p0: <root>.A2<*> declared in <root>.box.bar2' type=<root>.A2<*> origin=null
ARG x: GET_VAR[737, 748] 'p1: kotlin.CharSequence declared in <root>.box.bar2' type=kotlin.CharSequence origin=null
VAR[754, 789] name:t1 type:kotlin.Function1<kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[783, 789] 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[783, 789] LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo3 (p0: @[ParameterName(name = "x")] kotlin.String): kotlin.String declared in <root>.box'
CALL[783, 789] '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[783, 789] 'p0: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[794, 819] name:t2 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[803, 819] 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[803, 819] LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A3<kotlin.String>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[803, 819] '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[803, 819] 'p0: <root>.A3<kotlin.String> declared in <root>.box.foo3' type=<root>.A3<kotlin.String> origin=null
ARG x: GET_VAR[803, 819] 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.foo3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[824, 844] name:t3 type:@[ExtensionFunctionType] kotlin.reflect.KFunction2<<root>.A3<*>, *, kotlin.Comparable<*>> [val]
RICH_FUNCTION_REFERENCE[833, 844] 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[833, 844] LOCAL_FUNCTION_FOR_LAMBDA name:foo3 visibility:local modality:FINAL returnType:kotlin.Comparable<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A3<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.Comparable<*>
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun foo3 (p0: <root>.A3<*>, p1: kotlin.Comparable<*>): kotlin.Comparable<*> declared in <root>.box'
CALL[833, 844] '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[833, 844] type=<root>.A3<kotlin.Comparable<*>> origin=IMPLICIT_CAST typeOperand=<root>.A3<kotlin.Comparable<*>>
GET_VAR[833, 844] 'p0: <root>.A3<*> declared in <root>.box.foo3' type=<root>.A3<*> origin=null
ARG x: GET_VAR[833, 844] 'p1: kotlin.Comparable<*> declared in <root>.box.foo3' type=kotlin.Comparable<*> origin=null
VAR[849, 874] name:t4 type:kotlin.reflect.KFunction2<<root>.A3<kotlin.String>, @[ParameterName(name = "x")] kotlin.String, kotlin.String> [val]
RICH_FUNCTION_REFERENCE[858, 874] 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[858, 874] LOCAL_FUNCTION_FOR_LAMBDA name:bar3 visibility:local modality:FINAL returnType:kotlin.String
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A3<kotlin.String>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:@[ParameterName(name = "x")] kotlin.String
BLOCK_BODY[-1, -1]
RETURN[-1, -1] 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[858, 874] '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[858, 874] 'p0: <root>.A3<kotlin.String> declared in <root>.box.bar3' type=<root>.A3<kotlin.String> origin=null
ARG x: GET_VAR[858, 874] 'p1: @[ParameterName(name = "x")] kotlin.String declared in <root>.box.bar3' type=@[ParameterName(name = "x")] kotlin.String origin=null
VAR[879, 899] name:t5 type:kotlin.reflect.KFunction2<<root>.A3<*>, *, kotlin.Comparable<*>> [val]
RICH_FUNCTION_REFERENCE[888, 899] 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[888, 899] LOCAL_FUNCTION_FOR_LAMBDA name:bar3 visibility:local modality:FINAL returnType:kotlin.Comparable<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p0 index:0 type:<root>.A3<*>
VALUE_PARAMETER[-1, -1] kind:Regular name:p1 index:1 type:kotlin.Comparable<*>
BLOCK_BODY[-1, -1]
RETURN[-1, -1] type=kotlin.Nothing from='local final fun bar3 (p0: <root>.A3<*>, p1: kotlin.Comparable<*>): kotlin.Comparable<*> declared in <root>.box'
CALL[888, 899] '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[888, 899] 'p0: <root>.A3<*> declared in <root>.box.bar3' type=<root>.A3<*> origin=null
ARG x: GET_VAR[888, 899] 'p1: kotlin.Comparable<*> declared in <root>.box.bar3' type=kotlin.Comparable<*> origin=null
RETURN[905, 916] type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST[912, 916] String type=kotlin.String value="OK"
FUN[103, 137] name:foo visibility:public modality:FINAL returnType:T of <root>.foo
TYPE_PARAMETER[108, 109] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[111, 115] kind:ExtensionReceiver name:<this> index:0 type:<root>.A<T of <root>.foo>
VALUE_PARAMETER[120, 124] kind:Regular name:x index:1 type:T of <root>.foo
BLOCK_BODY[131, 137]
RETURN[137, 137] 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[131, 137] '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[131, 137] '<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[135, 136] 'x: T of <root>.foo declared in <root>.foo' type=T of <root>.foo origin=null
FUN[78, 102] name:foo visibility:public modality:FINAL returnType:T of <root>.foo
TYPE_PARAMETER[83, 84] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[90, 94] kind:Regular name:x index:0 type:T of <root>.foo
BLOCK_BODY[101, 102]
RETURN[102, 102] type=kotlin.Nothing from='public final fun foo <T> (x: T of <root>.foo): T of <root>.foo declared in <root>'
GET_VAR[101, 102] 'x: T of <root>.foo declared in <root>.foo' type=T of <root>.foo origin=null
FUN[237, 289] name:foo2 visibility:public modality:FINAL returnType:T of <root>.foo2
TYPE_PARAMETER[242, 258] name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
VALUE_PARAMETER[260, 265] kind:ExtensionReceiver name:<this> index:0 type:<root>.A2<T of <root>.foo2>
VALUE_PARAMETER[271, 275] kind:Regular name:x index:1 type:T of <root>.foo2
BLOCK_BODY[282, 289]
RETURN[289, 289] 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[282, 289] '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[282, 289] '<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[287, 288] 'x: T of <root>.foo2 declared in <root>.foo2' type=T of <root>.foo2 origin=null
FUN[196, 236] name:foo2 visibility:public modality:FINAL returnType:T of <root>.foo2
TYPE_PARAMETER[201, 217] name:T index:0 variance: superTypes:[kotlin.CharSequence] reified:false
VALUE_PARAMETER[224, 228] kind:Regular name:x index:0 type:T of <root>.foo2
BLOCK_BODY[235, 236]
RETURN[236, 236] type=kotlin.Nothing from='public final fun foo2 <T> (x: T of <root>.foo2): T of <root>.foo2 declared in <root>'
GET_VAR[235, 236] 'x: T of <root>.foo2 declared in <root>.foo2' type=T of <root>.foo2 origin=null
FUN[392, 445] name:foo3 visibility:public modality:FINAL returnType:T of <root>.foo3
TYPE_PARAMETER[397, 414] name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo3>] reified:false
VALUE_PARAMETER[416, 421] kind:ExtensionReceiver name:<this> index:0 type:<root>.A3<T of <root>.foo3>
VALUE_PARAMETER[427, 431] kind:Regular name:x index:1 type:T of <root>.foo3
BLOCK_BODY[438, 445]
RETURN[445, 445] 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[438, 445] '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[438, 445] '<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[443, 444] 'x: T of <root>.foo3 declared in <root>.foo3' type=T of <root>.foo3 origin=null
FUN[350, 391] name:foo3 visibility:public modality:FINAL returnType:T of <root>.foo3
TYPE_PARAMETER[355, 372] name:T index:0 variance: superTypes:[kotlin.Comparable<T of <root>.foo3>] reified:false
VALUE_PARAMETER[379, 383] kind:Regular name:x index:0 type:T of <root>.foo3
BLOCK_BODY[390, 391]
RETURN[391, 391] type=kotlin.Nothing from='public final fun foo3 <T> (x: T of <root>.foo3): T of <root>.foo3 declared in <root>'
GET_VAR[390, 391] 'x: T of <root>.foo3 declared in <root>.foo3' type=T of <root>.foo3 origin=null