blob: e9201ea077c9bb0075bc8dfaa728ecb086c48873 [file]
FILE fqName:kotlin fileName:/arrayAsserts.kt lineStartOffsets: [0, 39, 54, 55, 154, 196, 268, 349, 355, 357, 358, 440, 478, 526, 565, 627, 633, 649, 651, 652, 699, 750, 785, 791, 802, 826]
annotations:
Suppress(names = ["KOTLIN_PACKAGE_USAGE"] type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String)
FUN[366, 650] name:arraysEqual visibility:private modality:FINAL returnType:kotlin.Boolean
TYPE_PARAMETER[371, 372] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[386, 405] kind:Regular name:first index:0 type:kotlin.Array<out T of kotlin.arraysEqual>
VALUE_PARAMETER[407, 427] kind:Regular name:second index:1 type:kotlin.Array<out T of kotlin.arraysEqual>
BLOCK_BODY[438, 650]
WHEN[444, 477] type=kotlin.Unit origin=IF
BRANCH[448, 477]
if: CALL[448, 464] '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[448, 453] '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[458, 464] 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN[466, 477] 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[473, 477] Boolean type=kotlin.Boolean value=true
WHEN[482, 525] type=kotlin.Unit origin=IF
BRANCH[486, 525]
if: CALL[486, 511] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[486, 511] '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[492, 496] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[486, 491] '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[507, 511] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[500, 506] 'second: kotlin.Array<out T of kotlin.arraysEqual> declared in kotlin.arraysEqual' type=kotlin.Array<out T of kotlin.arraysEqual> origin=null
then: RETURN[513, 525] 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[520, 525] Boolean type=kotlin.Boolean value=false
BLOCK[530, 632] type=kotlin.Unit origin=FOR_LOOP
VAR[544, 561] FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.IntIterator [val]
CALL[544, 561] 'public open fun iterator (): kotlin.collections.IntIterator declared in kotlin.ranges.IntRange' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
ARG <this>: CALL[544, 561] 'public final fun rangeTo (other: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.Int' type=kotlin.ranges.IntRange origin=RANGE
ARG <this>: CONST[544, 545] Int type=kotlin.Int value=0
ARG other: CALL[547, 561] 'public final fun minus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=MINUS
ARG <this>: CALL[553, 557] 'public final fun <get-size> (): kotlin.Int declared in kotlin.Array' type=kotlin.Int origin=GET_PROPERTY
ARG <this>: GET_VAR[547, 552] '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[560, 561] Int type=kotlin.Int value=1
WHILE[530, 632] label=null origin=FOR_LOOP_INNER_WHILE
condition: CALL[544, 561] 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.IntIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
ARG <this>: GET_VAR[544, 561] 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
body: BLOCK[530, 632] type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
VAR[535, 540] FOR_LOOP_VARIABLE name:index type:kotlin.Int [val]
CALL[544, 561] 'public final fun next (): kotlin.Int declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
ARG <this>: GET_VAR[544, 561] 'val tmp_0: kotlin.collections.IntIterator declared in kotlin.arraysEqual' type=kotlin.collections.IntIterator origin=null
BLOCK[563, 632] type=kotlin.Unit origin=null
WHEN[573, 626] type=kotlin.Unit origin=IF
BRANCH[577, 626]
if: CALL[577, 612] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL[578, 612] 'private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin' type=kotlin.Boolean origin=null
ARG first: CALL[584, 596] '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[584, 589] '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[590, 595] 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
ARG second: CALL[598, 611] '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[598, 604] '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[605, 610] 'val index: kotlin.Int declared in kotlin.arraysEqual' type=kotlin.Int origin=null
then: RETURN[614, 626] 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[621, 626] Boolean type=kotlin.Boolean value=false
RETURN[637, 648] 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[644, 648] Boolean type=kotlin.Boolean value=true
FUN[55, 356] name:assertArrayEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[60, 61] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[81, 103] kind:Regular name:expected index:0 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER[105, 125] kind:Regular name:actual index:1 type:kotlin.Array<out T of kotlin.assertArrayEquals>
VALUE_PARAMETER[127, 150] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[146, 150]
CONST[146, 150] Null type=kotlin.Nothing? value=null
BLOCK_BODY[152, 356]
WHEN[158, 354] type=kotlin.Unit origin=IF
BRANCH[162, 354]
if: CALL[162, 192] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=null
ARG <this>: CALL[163, 192] '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[175, 183] '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[185, 191] 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
then: BLOCK[194, 354] type=kotlin.Unit origin=null
VAR[204, 267] name:msg type:kotlin.String [val]
WHEN[214, 267] type=kotlin.String origin=IF
BRANCH[218, 237]
if: CALL[218, 233] '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[218, 225] 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
ARG arg1: CONST[229, 233] Null type=kotlin.Nothing? value=null
then: CONST[235, 237] String type=kotlin.String value=""
BRANCH[243, 267]
if: CONST[243, 267] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[243, 267] type=kotlin.String
CONST[244, 257] String type=kotlin.String value=", message = '"
TYPE_OP[258, 265] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[258, 265] 'message: kotlin.String? declared in kotlin.assertArrayEquals' type=kotlin.String? origin=null
CONST[265, 266] String type=kotlin.String value="'"
CALL[276, 348] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[281, 347] type=kotlin.String
CONST[282, 312] String type=kotlin.String value="Unexpected array: expected = '"
GET_VAR[313, 321] 'expected: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST[321, 334] String type=kotlin.String value="', actual = '"
GET_VAR[335, 341] 'actual: kotlin.Array<out T of kotlin.assertArrayEquals> declared in kotlin.assertArrayEquals' type=kotlin.Array<out T of kotlin.assertArrayEquals> origin=null
CONST[341, 342] String type=kotlin.String value="'"
GET_VAR[343, 346] 'val msg: kotlin.String declared in kotlin.assertArrayEquals' type=kotlin.String origin=null
FUN[660, 831] name:equal visibility:private modality:FINAL returnType:kotlin.Boolean
VALUE_PARAMETER[670, 681] kind:Regular name:first index:0 type:kotlin.Any?
VALUE_PARAMETER[683, 695] kind:Regular name:second index:1 type:kotlin.Any?
BLOCK_BODY[703, 831]
RETURN[831, 831] type=kotlin.Nothing from='private final fun equal (first: kotlin.Any?, second: kotlin.Any?): kotlin.Boolean declared in kotlin'
WHEN[703, 831] type=kotlin.Boolean origin=IF
BRANCH[707, 790]
if: WHEN[707, 746] type=kotlin.Boolean origin=ANDAND
BRANCH[707, 746]
if: TYPE_OP[707, 724] type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR[707, 712] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
then: TYPE_OP[728, 746] type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Array<*>
GET_VAR[728, 734] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH[728, 746]
if: CONST[728, 746] Boolean type=kotlin.Boolean value=true
then: CONST[728, 746] Boolean type=kotlin.Boolean value=false
then: BLOCK[748, 790] type=kotlin.Boolean origin=null
CALL[758, 784] '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[770, 775] type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR[770, 775] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG second: TYPE_OP[777, 783] type=kotlin.Array<*> origin=IMPLICIT_CAST typeOperand=kotlin.Array<*>
GET_VAR[777, 783] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
BRANCH[800, 831]
if: CONST[800, 831] Boolean type=kotlin.Boolean value=true
then: BLOCK[800, 831] type=kotlin.Boolean origin=null
CALL[810, 825] '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[810, 815] 'first: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
ARG arg1: GET_VAR[819, 825] 'second: kotlin.Any? declared in kotlin.equal' type=kotlin.Any? origin=null
FILE fqName:kotlin fileName:/asserts.kt lineStartOffsets: [0, 39, 54, 181, 225, 226, 298, 328, 400, 481, 487, 489, 490, 564, 593, 665, 741, 747, 749, 750, 820, 851, 923, 1011, 1017, 1019, 1020, 1115, 1116, 1213, 1214, 1247, 1281, 1283, 1284, 1318, 1353, 1355, 1356, 1404, 1414, 1430, 1459, 1476, 1482, 1562]
annotations:
Suppress(names = ["KOTLIN_PACKAGE_USAGE"] type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String)
FUN[226, 488] name:assertEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[231, 232] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[247, 258] kind:Regular name:expected index:0 type:T of kotlin.assertEquals
VALUE_PARAMETER[260, 269] kind:Regular name:actual index:1 type:T of kotlin.assertEquals
VALUE_PARAMETER[271, 294] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[290, 294]
CONST[290, 294] Null type=kotlin.Nothing? value=null
BLOCK_BODY[296, 488]
WHEN[302, 486] type=kotlin.Unit origin=IF
BRANCH[306, 486]
if: CALL[306, 324] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[306, 324] '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[306, 314] 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
ARG arg1: GET_VAR[318, 324] 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
then: BLOCK[326, 486] type=kotlin.Unit origin=null
VAR[336, 399] name:msg type:kotlin.String [val]
WHEN[346, 399] type=kotlin.String origin=IF
BRANCH[350, 369]
if: CALL[350, 365] '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[350, 357] 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
ARG arg1: CONST[361, 365] Null type=kotlin.Nothing? value=null
then: CONST[367, 369] String type=kotlin.String value=""
BRANCH[375, 399]
if: CONST[375, 399] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[375, 399] type=kotlin.String
CONST[376, 389] String type=kotlin.String value=", message = '"
TYPE_OP[390, 397] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[390, 397] 'message: kotlin.String? declared in kotlin.assertEquals' type=kotlin.String? origin=null
CONST[397, 398] String type=kotlin.String value="'"
CALL[408, 480] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[413, 479] type=kotlin.String
CONST[414, 444] String type=kotlin.String value="Unexpected value: expected = '"
GET_VAR[445, 453] 'expected: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST[453, 466] String type=kotlin.String value="', actual = '"
GET_VAR[467, 473] 'actual: T of kotlin.assertEquals declared in kotlin.assertEquals' type=T of kotlin.assertEquals origin=null
CONST[473, 474] String type=kotlin.String value="'"
GET_VAR[475, 478] 'val msg: kotlin.String declared in kotlin.assertEquals' type=kotlin.String origin=null
FUN[1356, 1563] name:assertFails visibility:public modality:FINAL returnType:kotlin.Throwable
VALUE_PARAMETER[1372, 1389] kind:Regular name:block index:0 type:kotlin.Function0<kotlin.Unit>
BLOCK_BODY[1402, 1563]
TRY[1408, 1481] type=kotlin.Unit
try: BLOCK[1412, 1435] type=kotlin.Unit origin=null
CALL[1422, 1429] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Unit origin=INVOKE
ARG <this>: GET_VAR[1422, 1427] 'block: kotlin.Function0<kotlin.Unit> declared in kotlin.assertFails' type=kotlin.Function0<kotlin.Unit> origin=VARIABLE_AS_FUNCTION
CATCH[1436, 1481] parameter=val t: kotlin.Throwable declared in kotlin.assertFails
VAR[1443, 1455] CATCH_PARAMETER name:t type:kotlin.Throwable [val]
BLOCK[1457, 1481] type=kotlin.Nothing origin=null
RETURN[1467, 1475] type=kotlin.Nothing from='public final fun assertFails (block: kotlin.Function0<kotlin.Unit>): kotlin.Throwable declared in kotlin'
GET_VAR[1474, 1475] 'val t: kotlin.Throwable declared in kotlin.assertFails' type=kotlin.Throwable origin=null
CALL[1486, 1561] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: CONST[1491, 1560] String type=kotlin.String value="Expected an exception to be thrown, but was completed successfully."
FUN[1116, 1212] name:assertFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1132, 1147] kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER[1149, 1172] kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY[1168, 1172]
CONST[1168, 1172] Null type=kotlin.Nothing? value=null
BLOCK_BODY[1176, 1212]
RETURN[1212, 1212] type=kotlin.Nothing from='public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL[1176, 1212] '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[1189, 1194] Boolean type=kotlin.Boolean value=false
ARG actual: GET_VAR[1196, 1202] 'actual: kotlin.Boolean declared in kotlin.assertFalse' type=kotlin.Boolean origin=null
ARG message: GET_VAR[1204, 1211] 'message: kotlin.String? declared in kotlin.assertFalse' type=kotlin.String? origin=null
FUN[490, 748] name:assertNotEquals visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[495, 496] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[514, 524] kind:Regular name:illegal index:0 type:T of kotlin.assertNotEquals
VALUE_PARAMETER[526, 535] kind:Regular name:actual index:1 type:T of kotlin.assertNotEquals
VALUE_PARAMETER[537, 560] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[556, 560]
CONST[556, 560] Null type=kotlin.Nothing? value=null
BLOCK_BODY[562, 748]
WHEN[568, 746] type=kotlin.Unit origin=IF
BRANCH[572, 746]
if: CALL[572, 589] '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[572, 579] 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
ARG arg1: GET_VAR[583, 589] 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
then: BLOCK[591, 746] type=kotlin.Unit origin=null
VAR[601, 664] name:msg type:kotlin.String [val]
WHEN[611, 664] type=kotlin.String origin=IF
BRANCH[615, 634]
if: CALL[615, 630] '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[615, 622] 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
ARG arg1: CONST[626, 630] Null type=kotlin.Nothing? value=null
then: CONST[632, 634] String type=kotlin.String value=""
BRANCH[640, 664]
if: CONST[640, 664] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[640, 664] type=kotlin.String
CONST[641, 654] String type=kotlin.String value=", message = '"
TYPE_OP[655, 662] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[655, 662] 'message: kotlin.String? declared in kotlin.assertNotEquals' type=kotlin.String? origin=null
CONST[662, 663] String type=kotlin.String value="'"
CALL[673, 740] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[678, 739] type=kotlin.String
CONST[679, 705] String type=kotlin.String value="Illegal value: illegal = '"
GET_VAR[706, 713] 'illegal: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST[713, 726] String type=kotlin.String value="', actual = '"
GET_VAR[727, 733] 'actual: T of kotlin.assertNotEquals declared in kotlin.assertNotEquals' type=T of kotlin.assertNotEquals origin=null
CONST[733, 734] String type=kotlin.String value="'"
GET_VAR[735, 738] 'val msg: kotlin.String declared in kotlin.assertNotEquals' type=kotlin.String origin=null
FUN[750, 1018] name:assertSame visibility:public modality:FINAL returnType:kotlin.Unit
TYPE_PARAMETER[755, 756] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[769, 780] kind:Regular name:expected index:0 type:T of kotlin.assertSame
VALUE_PARAMETER[782, 791] kind:Regular name:actual index:1 type:T of kotlin.assertSame
VALUE_PARAMETER[793, 816] kind:Regular name:message index:2 type:kotlin.String?
EXPRESSION_BODY[812, 816]
CONST[812, 816] Null type=kotlin.Nothing? value=null
BLOCK_BODY[818, 1018]
WHEN[824, 1016] type=kotlin.Unit origin=IF
BRANCH[828, 1016]
if: CALL[828, 847] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQEQ
ARG <this>: CALL[828, 847] '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[828, 836] 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
ARG arg1: GET_VAR[841, 847] 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
then: BLOCK[849, 1016] type=kotlin.Unit origin=null
VAR[859, 922] name:msg type:kotlin.String [val]
WHEN[869, 922] type=kotlin.String origin=IF
BRANCH[873, 892]
if: CALL[873, 888] '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[873, 880] 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
ARG arg1: CONST[884, 888] Null type=kotlin.Nothing? value=null
then: CONST[890, 892] String type=kotlin.String value=""
BRANCH[898, 922]
if: CONST[898, 922] Boolean type=kotlin.Boolean value=true
then: STRING_CONCATENATION[898, 922] type=kotlin.String
CONST[899, 912] String type=kotlin.String value=", message = '"
TYPE_OP[913, 920] type=kotlin.String origin=IMPLICIT_CAST typeOperand=kotlin.String
GET_VAR[913, 920] 'message: kotlin.String? declared in kotlin.assertSame' type=kotlin.String? origin=null
CONST[920, 921] String type=kotlin.String value="'"
CALL[931, 1010] 'public final fun fail (message: kotlin.String?): kotlin.Nothing declared in kotlin' type=kotlin.Nothing origin=null
ARG message: STRING_CONCATENATION[936, 1009] type=kotlin.String
CONST[937, 974] String type=kotlin.String value="Expected same instances: expected = '"
GET_VAR[975, 983] 'expected: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST[983, 996] String type=kotlin.String value="', actual = '"
GET_VAR[997, 1003] 'actual: T of kotlin.assertSame declared in kotlin.assertSame' type=T of kotlin.assertSame origin=null
CONST[1003, 1004] String type=kotlin.String value="'"
GET_VAR[1005, 1008] 'val msg: kotlin.String declared in kotlin.assertSame' type=kotlin.String origin=null
FUN[1020, 1114] name:assertTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1035, 1050] kind:Regular name:actual index:0 type:kotlin.Boolean
VALUE_PARAMETER[1052, 1075] kind:Regular name:message index:1 type:kotlin.String?
EXPRESSION_BODY[1071, 1075]
CONST[1071, 1075] Null type=kotlin.Nothing? value=null
BLOCK_BODY[1079, 1114]
RETURN[1114, 1114] type=kotlin.Nothing from='public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin'
CALL[1079, 1114] '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[1092, 1096] Boolean type=kotlin.Boolean value=true
ARG actual: GET_VAR[1098, 1104] 'actual: kotlin.Boolean declared in kotlin.assertTrue' type=kotlin.Boolean origin=null
ARG message: GET_VAR[1106, 1113] 'message: kotlin.String? declared in kotlin.assertTrue' type=kotlin.String? origin=null
FUN[1284, 1354] name:testFalse visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1298, 1314] kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY[1316, 1354]
CALL[1322, 1352] 'public final fun assertFalse (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL[1334, 1337] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR[1334, 1335] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL[1341, 1351] 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP[1339, 1340] type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR[1339, 1340] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testFalse' type=kotlin.Function0<kotlin.Boolean> origin=null
FUN[1214, 1282] name:testTrue visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[1227, 1243] kind:Regular name:f index:0 type:kotlin.Function0<kotlin.Boolean>
BLOCK_BODY[1245, 1282]
CALL[1251, 1280] 'public final fun assertTrue (actual: kotlin.Boolean, message: kotlin.String?): kotlin.Unit declared in kotlin' type=kotlin.Unit origin=null
ARG actual: CALL[1262, 1265] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Boolean origin=INVOKE
ARG <this>: GET_VAR[1262, 1263] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=VARIABLE_AS_FUNCTION
ARG message: CALL[1269, 1279] 'public open fun toString (): kotlin.String declared in kotlin.Function0' type=kotlin.String origin=null
ARG <this>: TYPE_OP[1267, 1268] type=kotlin.Any origin=IMPLICIT_CAST typeOperand=kotlin.Any
GET_VAR[1267, 1268] 'f: kotlin.Function0<kotlin.Boolean> declared in kotlin.testTrue' type=kotlin.Function0<kotlin.Boolean> origin=null
FILE fqName:kotlin fileName:/fail.kt lineStartOffsets: [0, 39, 54, 181, 225, 226, 271, 300]
annotations:
Suppress(names = ["KOTLIN_PACKAGE_USAGE"] type=kotlin.Array<out kotlin.String> varargElementType=kotlin.String)
FUN[226, 301] name:fail visibility:public modality:FINAL returnType:kotlin.Nothing
VALUE_PARAMETER[235, 258] kind:Regular name:message index:0 type:kotlin.String?
EXPRESSION_BODY[254, 258]
CONST[254, 258] Null type=kotlin.Nothing? value=null
BLOCK_BODY[269, 301]
THROW[275, 299] type=kotlin.Nothing
CONSTRUCTOR_CALL[281, 299] 'public constructor <init> (message: kotlin.String?) declared in kotlin.Throwable' type=kotlin.Throwable origin=null
ARG message: GET_VAR[291, 298] '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