blob: 79b7275d15c6ff34bca5273c785d5a5c81924ed1 [file]
Module: lib
FILE fqName:<root> fileName:/lib.kt lineStartOffsets: [0, 19, 42, 78, 94, 113, 140, 164, 208, 209, 225, 268, 269, 291, 292, 345, 346, 397, 424, 447, 477, 502, 528, 560, 593, 625, 639, 670, 680, 698, 738, 748, 754, 790, 832, 834, 835]
PROPERTY[269, 290] name:globalCounter visibility:public modality:FINAL [var]
FIELD[269, 290] PROPERTY_BACKING_FIELD name:globalCounter type:kotlin.Int visibility:private [static]
EXPRESSION_BODY[289, 290]
CONST[289, 290] Int type=kotlin.Int value=0
FUN[269, 286] DEFAULT_PROPERTY_ACCESSOR name:<get-globalCounter> visibility:public modality:FINAL returnType:kotlin.Int
correspondingProperty: PROPERTY[269, 290] name:globalCounter visibility:public modality:FINAL [var]
BLOCK_BODY[269, 286]
RETURN[269, 286] type=kotlin.Nothing from='public final fun <get-globalCounter> (): kotlin.Int declared in <root>'
GET_FIELD[269, 286] 'FIELD PROPERTY_BACKING_FIELD name:globalCounter type:kotlin.Int visibility:private [static]' type=kotlin.Int origin=null
FUN[269, 286] DEFAULT_PROPERTY_ACCESSOR name:<set-globalCounter> visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[269, 286] kind:Regular name:<set-?> index:0 type:kotlin.Int
correspondingProperty: PROPERTY[269, 290] name:globalCounter visibility:public modality:FINAL [var]
BLOCK_BODY[269, 286]
SET_FIELD[269, 286] 'FIELD PROPERTY_BACKING_FIELD name:globalCounter type:kotlin.Int visibility:private [static]' type=kotlin.Unit origin=null
value: GET_VAR[269, 286] '<set-?>: kotlin.Int declared in <root>.<set-globalCounter>' type=kotlin.Int origin=null
CLASS[225, 267] CLASS name:Pair modality:FINAL visibility:public superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER[225, 267] INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.Pair<T of <root>.Pair>
TYPE_PARAMETER[236, 237] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
PROPERTY[239, 251] name:first visibility:public modality:FINAL [val]
FIELD[239, 251] PROPERTY_BACKING_FIELD name:first type:T of <root>.Pair visibility:private [final]
EXPRESSION_BODY[239, 251]
GET_VAR[239, 251] 'first: T of <root>.Pair declared in <root>.Pair.<init>' type=T of <root>.Pair origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN[239, 251] DEFAULT_PROPERTY_ACCESSOR name:<get-first> visibility:public modality:FINAL returnType:T of <root>.Pair
VALUE_PARAMETER[239, 251] kind:DispatchReceiver name:<this> index:0 type:<root>.Pair<T of <root>.Pair>
correspondingProperty: PROPERTY[239, 251] name:first visibility:public modality:FINAL [val]
BLOCK_BODY[239, 251]
RETURN[239, 251] type=kotlin.Nothing from='public final fun <get-first> (): T of <root>.Pair declared in <root>.Pair'
GET_FIELD[239, 251] 'FIELD PROPERTY_BACKING_FIELD name:first type:T of <root>.Pair visibility:private [final]' type=T of <root>.Pair origin=null
receiver: GET_VAR[239, 251] '<this>: <root>.Pair<T of <root>.Pair> declared in <root>.Pair.<get-first>' type=<root>.Pair<T of <root>.Pair> origin=null
PROPERTY[253, 266] name:second visibility:public modality:FINAL [val]
FIELD[253, 266] PROPERTY_BACKING_FIELD name:second type:T of <root>.Pair visibility:private [final]
EXPRESSION_BODY[253, 266]
GET_VAR[253, 266] 'second: T of <root>.Pair declared in <root>.Pair.<init>' type=T of <root>.Pair origin=INITIALIZE_PROPERTY_FROM_PARAMETER
FUN[253, 266] DEFAULT_PROPERTY_ACCESSOR name:<get-second> visibility:public modality:FINAL returnType:T of <root>.Pair
VALUE_PARAMETER[253, 266] kind:DispatchReceiver name:<this> index:0 type:<root>.Pair<T of <root>.Pair>
correspondingProperty: PROPERTY[253, 266] name:second visibility:public modality:FINAL [val]
BLOCK_BODY[253, 266]
RETURN[253, 266] type=kotlin.Nothing from='public final fun <get-second> (): T of <root>.Pair declared in <root>.Pair'
GET_FIELD[253, 266] 'FIELD PROPERTY_BACKING_FIELD name:second type:T of <root>.Pair visibility:private [final]' type=T of <root>.Pair origin=null
receiver: GET_VAR[253, 266] '<this>: <root>.Pair<T of <root>.Pair> declared in <root>.Pair.<get-second>' type=<root>.Pair<T of <root>.Pair> origin=null
CONSTRUCTOR[238, 267] visibility:public returnType:<root>.Pair<T of <root>.Pair> [primary]
VALUE_PARAMETER[239, 251] kind:Regular name:first index:0 type:T of <root>.Pair
VALUE_PARAMETER[253, 266] kind:Regular name:second index:1 type:T of <root>.Pair
BLOCK_BODY[238, 267]
DELEGATING_CONSTRUCTOR_CALL[225, 267] 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL[225, 267] classDescriptor='CLASS CLASS name:Pair 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[353, 833] name:bar visibility:public modality:FINAL returnType:kotlin.Int [inline]
VALUE_PARAMETER[361, 388] kind:Regular name:test index:0 type:kotlin.Function0<kotlin.Int> [crossinline]
BLOCK_BODY[395, 833]
VAR[401, 423] name:outsideCounter type:kotlin.Int [var]
CONST[422, 423] Int type=kotlin.Int value=0
VAR[428, 753] name:x type:<root>.Pair<<root>.bar.<anonymous>.<no name provided>> [val]
CALL[436, 753] 'public final fun runTwice <T> (f: kotlin.Function0<T of <root>.runTwice>): <root>.Pair<T of <root>.runTwice> declared in <root>' type=<root>.Pair<<root>.bar.<anonymous>.<no name provided>> origin=null
TYPE_ARG T: <root>.bar.<anonymous>.<no name provided>
ARG f: FUN_EXPR[445, 753] type=kotlin.Function0<<root>.bar.<anonymous>.<no name provided>> origin=LAMBDA
FUN[445, 753] LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:<root>.bar.<anonymous>.<no name provided>
BLOCK_BODY[455, 747]
VAR[455, 476] name:insideCounter type:kotlin.Int [var]
CONST[475, 476] Int type=kotlin.Int value=0
VAR[485, 679] name:r type:<root>.bar.<anonymous>.<no name provided> [val]
BLOCK[493, 679] type=<root>.bar.<anonymous>.<no name provided> origin=OBJECT_LITERAL
CLASS[493, 679] CLASS name:<no name provided> modality:FINAL visibility:local superTypes:[kotlin.Any]
thisReceiver: VALUE_PARAMETER[493, 679] INSTANCE_RECEIVER kind:DispatchReceiver name:<this> type:<root>.bar.<anonymous>.<no name provided>
CONSTRUCTOR[493, 679] visibility:public returnType:<root>.bar.<anonymous>.<no name provided> [primary]
BLOCK_BODY[493, 679]
DELEGATING_CONSTRUCTOR_CALL[493, 679] 'public constructor <init> () declared in kotlin.Any'
INSTANCE_INITIALIZER_CALL[493, 679] classDescriptor='CLASS CLASS name:<no name provided> modality:FINAL visibility:local 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[514, 638] name:count visibility:public modality:FINAL returnType:kotlin.Unit
VALUE_PARAMETER[514, 638] kind:DispatchReceiver name:<this> index:0 type:<root>.bar.<anonymous>.<no name provided>
BLOCK_BODY[526, 638]
TYPE_OP[544, 559] type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
BLOCK[544, 559] type=kotlin.Int origin=POSTFIX_INCR
VAR[544, 559] IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Int [val]
CALL[544, 557] 'public final fun <get-globalCounter> (): kotlin.Int declared in <root>' type=kotlin.Int origin=POSTFIX_INCR
CALL[544, 559] 'public final fun <set-globalCounter> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=POSTFIX_INCR
ARG <set-?>: CALL[557, 559] 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=POSTFIX_INCR
ARG <this>: GET_VAR[544, 559] 'val tmp_0: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
GET_VAR[544, 559] 'val tmp_0: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
TYPE_OP[576, 592] type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
BLOCK[576, 592] type=kotlin.Int origin=POSTFIX_INCR
VAR[576, 592] IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.Int [val]
GET_VAR[576, 590] 'var outsideCounter: kotlin.Int declared in <root>.bar' type=kotlin.Int origin=POSTFIX_INCR
SET_VAR[576, 592] 'var outsideCounter: kotlin.Int declared in <root>.bar' type=kotlin.Unit origin=POSTFIX_INCR
CALL[590, 592] 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=POSTFIX_INCR
ARG <this>: GET_VAR[576, 592] 'val tmp_1: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
GET_VAR[576, 592] 'val tmp_1: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
TYPE_OP[609, 624] type=kotlin.Unit origin=IMPLICIT_COERCION_TO_UNIT typeOperand=kotlin.Unit
BLOCK[609, 624] type=kotlin.Int origin=POSTFIX_INCR
VAR[609, 624] IR_TEMPORARY_VARIABLE name:tmp_2 type:kotlin.Int [val]
GET_VAR[609, 622] 'var insideCounter: kotlin.Int declared in <root>.bar.<anonymous>' type=kotlin.Int origin=POSTFIX_INCR
SET_VAR[609, 624] 'var insideCounter: kotlin.Int declared in <root>.bar.<anonymous>' type=kotlin.Unit origin=POSTFIX_INCR
CALL[622, 624] 'public final fun inc (): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=POSTFIX_INCR
ARG <this>: GET_VAR[609, 624] 'val tmp_2: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
GET_VAR[609, 624] 'val tmp_2: kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>.count' type=kotlin.Int origin=null
FUN[651, 669] name:foo visibility:public modality:FINAL returnType:kotlin.Int
VALUE_PARAMETER[651, 669] kind:DispatchReceiver name:<this> index:0 type:<root>.bar.<anonymous>.<no name provided>
BLOCK_BODY[663, 669]
RETURN[669, 669] type=kotlin.Nothing from='public final fun foo (): kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>'
CALL[663, 669] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=kotlin.Int origin=INVOKE
ARG <this>: GET_VAR[663, 667] 'test: kotlin.Function0<kotlin.Int> declared in <root>.bar' type=kotlin.Function0<kotlin.Int> origin=VARIABLE_AS_FUNCTION
CONSTRUCTOR_CALL[493, 679] 'public constructor <init> () declared in <root>.bar.<anonymous>.<no name provided>' type=<root>.bar.<anonymous>.<no name provided> origin=OBJECT_LITERAL
CALL[690, 697] 'public final fun count (): kotlin.Unit declared in <root>.bar.<anonymous>.<no name provided>' type=kotlin.Unit origin=null
ARG <this>: GET_VAR[688, 689] 'val r: <root>.bar.<anonymous>.<no name provided> declared in <root>.bar.<anonymous>' type=<root>.bar.<anonymous>.<no name provided> origin=null
SET_VAR[706, 737] 'var outsideCounter: kotlin.Int declared in <root>.bar' type=kotlin.Unit origin=PLUSEQ
CALL[706, 737] 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
ARG <this>: GET_VAR[706, 720] 'var outsideCounter: kotlin.Int declared in <root>.bar' type=kotlin.Int origin=PLUSEQ
ARG other: GET_VAR[724, 737] 'var insideCounter: kotlin.Int declared in <root>.bar.<anonymous>' type=kotlin.Int origin=null
RETURN[747, 747] type=kotlin.Nothing from='local final fun <anonymous> (): <root>.bar.<anonymous>.<no name provided> declared in <root>.bar'
GET_VAR[746, 747] 'val r: <root>.bar.<anonymous>.<no name provided> declared in <root>.bar.<anonymous>' type=<root>.bar.<anonymous>.<no name provided> origin=null
CALL[758, 789] 'public final fun <set-globalCounter> (<set-?>: kotlin.Int): kotlin.Unit declared in <root>' type=kotlin.Unit origin=PLUSEQ
ARG <set-?>: CALL[758, 789] 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUSEQ
ARG <this>: CALL[758, 771] 'public final fun <get-globalCounter> (): kotlin.Int declared in <root>' type=kotlin.Int origin=PLUSEQ
ARG other: GET_VAR[775, 789] 'var outsideCounter: kotlin.Int declared in <root>.bar' type=kotlin.Int origin=null
RETURN[794, 831] type=kotlin.Nothing from='public final fun bar (test: kotlin.Function0<kotlin.Int>): kotlin.Int declared in <root>'
CALL[801, 831] 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
ARG <this>: CALL[809, 814] 'public final fun foo (): kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>' type=kotlin.Int origin=null
ARG <this>: CALL[803, 808] 'public final fun <get-first> (): T of <root>.Pair declared in <root>.Pair' type=<root>.bar.<anonymous>.<no name provided> origin=GET_PROPERTY
ARG <this>: GET_VAR[801, 802] 'val x: <root>.Pair<<root>.bar.<anonymous>.<no name provided>> declared in <root>.bar' type=<root>.Pair<<root>.bar.<anonymous>.<no name provided>> origin=null
ARG other: CALL[826, 831] 'public final fun foo (): kotlin.Int declared in <root>.bar.<anonymous>.<no name provided>' type=kotlin.Int origin=null
ARG <this>: CALL[819, 825] 'public final fun <get-second> (): T of <root>.Pair declared in <root>.Pair' type=<root>.bar.<anonymous>.<no name provided> origin=GET_PROPERTY
ARG <this>: GET_VAR[817, 818] 'val x: <root>.Pair<<root>.bar.<anonymous>.<no name provided>> declared in <root>.bar' type=<root>.Pair<<root>.bar.<anonymous>.<no name provided>> origin=null
FUN[299, 344] name:runTwice visibility:public modality:FINAL returnType:<root>.Pair<T of <root>.runTwice> [inline]
TYPE_PARAMETER[304, 305] name:T index:0 variance: superTypes:[kotlin.Any?] reified:false
VALUE_PARAMETER[316, 326] kind:Regular name:f index:0 type:kotlin.Function0<T of <root>.runTwice>
BLOCK_BODY[330, 344]
RETURN[344, 344] type=kotlin.Nothing from='public final fun runTwice <T> (f: kotlin.Function0<T of <root>.runTwice>): <root>.Pair<T of <root>.runTwice> declared in <root>'
CONSTRUCTOR_CALL[330, 344] 'public constructor <init> (first: T of <root>.Pair, second: T of <root>.Pair) declared in <root>.Pair' type=<root>.Pair<T of <root>.runTwice> origin=null
TYPE_ARG (of class) T: T of <root>.runTwice
ARG first: CALL[335, 338] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=T of <root>.runTwice origin=INVOKE
ARG <this>: GET_VAR[335, 336] 'f: kotlin.Function0<T of <root>.runTwice> declared in <root>.runTwice' type=kotlin.Function0<T of <root>.runTwice> origin=VARIABLE_AS_FUNCTION
ARG second: CALL[340, 343] 'public abstract fun invoke (): R of kotlin.Function0 declared in kotlin.Function0' type=T of <root>.runTwice origin=INVOKE
ARG <this>: GET_VAR[340, 341] 'f: kotlin.Function0<T of <root>.runTwice> declared in <root>.runTwice' type=kotlin.Function0<T of <root>.runTwice> origin=VARIABLE_AS_FUNCTION
Module: main
FILE fqName:<root> fileName:/main.kt lineStartOffsets: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 53, 73, 100, 151, 219, 235, 237]
FUN[53, 236] name:box visibility:public modality:FINAL returnType:kotlin.String
BLOCK_BODY[71, 236]
VAR[77, 99] name:result type:kotlin.Int [val]
CALL[90, 99] 'public final fun bar (test: kotlin.Function0<kotlin.Int>): kotlin.Int declared in <root>' type=kotlin.Int origin=null
ARG test: FUN_EXPR[94, 99] type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN[94, 99] LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL returnType:kotlin.Int
BLOCK_BODY[96, 97]
RETURN[97, 97] type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.box'
CONST[96, 97] Int type=kotlin.Int value=5
WHEN[104, 150] type=kotlin.Unit origin=IF
BRANCH[108, 150]
if: CALL[108, 123] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[108, 123] '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[108, 114] 'val result: kotlin.Int declared in <root>.box' type=kotlin.Int origin=null
ARG arg1: CALL[118, 123] 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
ARG <this>: CONST[118, 119] Int type=kotlin.Int value=5
ARG other: CONST[122, 123] Int type=kotlin.Int value=5
then: RETURN[125, 150] type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
STRING_CONCATENATION[132, 150] type=kotlin.String
CONST[133, 142] String type=kotlin.String value="result = "
GET_VAR[143, 149] 'val result: kotlin.Int declared in <root>.box' type=kotlin.Int origin=null
WHEN[155, 218] type=kotlin.Unit origin=IF
BRANCH[159, 218]
if: CALL[159, 177] 'public final fun not (): kotlin.Boolean declared in kotlin.Boolean' type=kotlin.Boolean origin=EXCLEQ
ARG <this>: CALL[159, 177] '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[159, 172] 'public final fun <get-globalCounter> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
ARG arg1: CONST[176, 177] Int type=kotlin.Int value=6
then: RETURN[179, 218] type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
STRING_CONCATENATION[186, 218] type=kotlin.String
CONST[187, 203] String type=kotlin.String value="globalCounter = "
CALL[204, 217] 'public final fun <get-globalCounter> (): kotlin.Int declared in <root>' type=kotlin.Int origin=GET_PROPERTY
RETURN[223, 234] type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
CONST[230, 234] String type=kotlin.String value="OK"