Set resolved type for lambdas properly during FIR resolve

Partially done by semoro
This commit is contained in:
Mikhail Glukhikh
2019-05-20 17:57:43 +03:00
parent 963ed44ce1
commit 05e4539019
29 changed files with 272 additions and 145 deletions
@@ -1,15 +0,0 @@
FILE fqName:<root> fileName:/anonymousFunction.kt
PROPERTY name:anonymous visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:anonymous type:IrErrorType visibility:public [final,static]
EXPRESSION_BODY
BLOCK type=IrErrorType origin=ANONYMOUS_FUNCTION
FUN name:<no name provided> visibility:local modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun println (): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
FUNCTION_REFERENCE 'local final fun <no name provided> (): kotlin.Unit declared in <root>.anonymous' type=IrErrorType origin=ANONYMOUS_FUNCTION
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-anonymous> visibility:public modality:FINAL <> () returnType:IrErrorType
correspondingProperty: PROPERTY name:anonymous visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-anonymous> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:anonymous type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
@@ -1,3 +1,4 @@
// FIR_IDENTICAL
// WITH_RUNTIME
val anonymous = fun() { println() }
@@ -68,7 +68,7 @@ FILE fqName:<root> fileName:/destructuringInLambda.kt
PROPERTY name:fn visibility:public modality:FINAL [var]
FIELD PROPERTY_BACKING_FIELD name:fn type:kotlin.Function1<<root>.A, kotlin.Int> visibility:public [static]
EXPRESSION_BODY
BLOCK type=kotlin.Function1<<root>.A, kotlin.Int> origin=LAMBDA
BLOCK type=kotlin.Function2<kotlin.Function1<<root>.A, kotlin.Int>, IrErrorType, kotlin.Function1<<root>.A, kotlin.Int>> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (<destruct>:IrErrorType) returnType:kotlin.Function1<<root>.A, kotlin.Int>
VALUE_PARAMETER name:<destruct> index:0 type:IrErrorType
BLOCK_BODY
@@ -78,7 +78,7 @@ FILE fqName:<root> fileName:/destructuringInLambda.kt
ERROR_CALL 'Unresolved reference: <Unresolved name: component2>#' type=IrErrorType
ERROR_CALL 'Unresolved reference: <Ambiguity: plus, [kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus, kotlin/Int.plus]>#' type=IrErrorType
GET_VAR 'val y: IrErrorType [val] declared in <root>.fn.<anonymous>' type=IrErrorType origin=null
FUNCTION_REFERENCE 'local final fun <anonymous> (<destruct>: IrErrorType): kotlin.Function1<<root>.A, kotlin.Int> declared in <root>.fn' type=kotlin.Function1<<root>.A, kotlin.Int> origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (<destruct>: IrErrorType): kotlin.Function1<<root>.A, kotlin.Int> declared in <root>.fn' type=kotlin.Function2<kotlin.Function1<<root>.A, kotlin.Int>, IrErrorType, kotlin.Function1<<root>.A, kotlin.Int>> origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-fn> visibility:public modality:FINAL <> () returnType:kotlin.Function1<<root>.A, kotlin.Int>
correspondingProperty: PROPERTY name:fn visibility:public modality:FINAL [var]
BLOCK_BODY
@@ -3,10 +3,9 @@ FILE fqName:<root> fileName:/extensionLambda.kt
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun test1 (): kotlin.Int declared in <root>'
CALL 'public final fun run (block: kotlin.Function1<T of <uninitialized parent>, R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Int origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
block: BLOCK type=kotlin.Function2<kotlin.String, kotlin.String, kotlin.Int> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.String) returnType:kotlin.Int
VALUE_PARAMETER name:it index:0 type:kotlin.String
BLOCK_BODY
ERROR_CALL 'No getter found for R|kotlin/String.length|' type=kotlin.Int
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.String): kotlin.Int declared in <root>.test1' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.String): kotlin.Int declared in <root>.test1' type=kotlin.Function2<kotlin.String, kotlin.String, kotlin.Int> origin=LAMBDA
+15 -16
View File
@@ -1,28 +1,27 @@
FILE fqName:<root> fileName:/justLambda.kt
PROPERTY name:test1 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static]
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Function0<kotlin.Int> visibility:public [final,static]
EXPRESSION_BODY
BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:IrErrorType
BLOCK type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
CONST Int type=IrErrorType value=42
FUNCTION_REFERENCE 'local final fun <anonymous> (): IrErrorType declared in <root>.test1' type=IrErrorType origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:IrErrorType
CONST Int type=kotlin.Function0<kotlin.Int> value=42
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.test1' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Int>
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
RETURN type=kotlin.Nothing from='public final fun <get-test1> (): kotlin.Function0<kotlin.Int> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Function0<kotlin.Int> visibility:public [final,static] ' type=kotlin.Function0<kotlin.Int> origin=null
PROPERTY name:test2 visibility:public modality:FINAL [val]
FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [final,static]
FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Function0<kotlin.Unit> visibility:public [final,static]
EXPRESSION_BODY
BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:IrErrorType
BLOCK type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): IrErrorType declared in <root>.test2' type=IrErrorType origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:IrErrorType
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test2' type=kotlin.Function0<kotlin.Unit> origin=LAMBDA
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:kotlin.Function0<kotlin.Unit>
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
BLOCK_BODY
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): IrErrorType declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:IrErrorType visibility:public [final,static] ' type=IrErrorType origin=null
RETURN type=kotlin.Nothing from='public final fun <get-test2> (): kotlin.Function0<kotlin.Unit> declared in <root>'
GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:test2 type:kotlin.Function0<kotlin.Unit> visibility:public [final,static] ' type=kotlin.Function0<kotlin.Unit> origin=null
@@ -85,24 +85,23 @@ FILE fqName:<root> fileName:/multipleImplicitReceivers.kt
BLOCK_BODY
CALL 'public final fun with (receiver: T of <uninitialized parent>, block: kotlin.Function1<T of <uninitialized parent>, R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
receiver: GET_OBJECT 'CLASS OBJECT name:A modality:FINAL visibility:public superTypes:[kotlin.Any]' type=<root>.A
block: BLOCK type=IrErrorType origin=LAMBDA
block: BLOCK type=kotlin.Function2<<root>.A, <root>.A, kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:<root>.A) returnType:kotlin.Nothing
VALUE_PARAMETER name:it index:0 type:<root>.A
BLOCK_BODY
CALL 'public final fun with (receiver: T of <uninitialized parent>, block: kotlin.Function1<T of <uninitialized parent>, R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
receiver: GET_VAR 'fooImpl: <root>.IFoo declared in <root>.test' type=<root>.IFoo origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
block: BLOCK type=kotlin.Function2<<root>.IFoo, <root>.IFoo, kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:<root>.IFoo) returnType:kotlin.Nothing
VALUE_PARAMETER name:it index:0 type:<root>.IFoo
BLOCK_BODY
CALL 'public final fun with (receiver: T of <uninitialized parent>, block: kotlin.Function1<T of <uninitialized parent>, R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
receiver: GET_VAR 'invokeImpl: <root>.IInvoke declared in <root>.test' type=<root>.IInvoke origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:<root>.IInvoke) returnType:IrErrorType
block: BLOCK type=kotlin.Function2<<root>.IInvoke, <root>.IInvoke, kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:<root>.IInvoke) returnType:kotlin.Nothing
VALUE_PARAMETER name:it index:0 type:<root>.IInvoke
BLOCK_BODY
ERROR_CALL 'Unresolved reference: <Unresolved name: foo>#' type=IrErrorType
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.IInvoke): IrErrorType declared in <root>.test.<anonymous>.<anonymous>' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.IFoo): kotlin.Nothing declared in <root>.test.<anonymous>' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.A): kotlin.Nothing declared in <root>.test' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.IInvoke): kotlin.Nothing declared in <root>.test.<anonymous>.<anonymous>' type=kotlin.Function2<<root>.IInvoke, <root>.IInvoke, kotlin.Nothing> origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.IFoo): kotlin.Nothing declared in <root>.test.<anonymous>' type=kotlin.Function2<<root>.IFoo, <root>.IFoo, kotlin.Nothing> origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: <root>.A): kotlin.Nothing declared in <root>.test' type=kotlin.Function2<<root>.A, <root>.A, kotlin.Nothing> origin=LAMBDA
+22 -23
View File
@@ -2,49 +2,49 @@ FILE fqName:<root> fileName:/nonLocalReturn.kt
FUN name:test0 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun run (block: kotlin.Function0<R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
block: BLOCK type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.test0'
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing declared in <root>.test0'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test0' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test0' type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN name:test1 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun run (block: kotlin.Function0<R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
block: BLOCK type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.test1'
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing declared in <root>.test1'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test1' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test1' type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN name:test2 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun run (block: kotlin.Function0<R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
block: BLOCK type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.test2'
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing declared in <root>.test2'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test2' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test2' type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.Unit
BLOCK_BODY
CALL 'public final fun run (block: kotlin.Function0<R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
block: BLOCK type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing
BLOCK_BODY
CALL 'public final fun run (block: kotlin.Function0<R of <uninitialized parent>>): R of <uninitialized parent> [inline] declared in kotlin' type=kotlin.Nothing origin=null
block: BLOCK type=IrErrorType origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Unit
block: BLOCK type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Nothing
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Unit declared in <root>.test3.<anonymous>'
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Nothing declared in <root>.test3.<anonymous>'
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Unit declared in <root>.test3.<anonymous>' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test3' type=IrErrorType origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test3.<anonymous>' type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Nothing declared in <root>.test3' type=kotlin.Function0<kotlin.Nothing> origin=LAMBDA
FUN name:testLrmFoo1 visibility:public modality:FINAL <> (ints:kotlin.collections.List<kotlin.Int>) returnType:kotlin.Unit
VALUE_PARAMETER name:ints index:0 type:kotlin.collections.List<kotlin.Int>
BLOCK_BODY
CALL 'public final fun forEach (action: kotlin.Function1<T of <uninitialized parent>, kotlin.Unit>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
action: BLOCK type=kotlin.Unit origin=LAMBDA
action: BLOCK type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Int) returnType:kotlin.Unit
VALUE_PARAMETER name:it index:0 type:kotlin.Int
BLOCK_BODY
@@ -57,12 +57,12 @@ FILE fqName:<root> fileName:/nonLocalReturn.kt
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
CALL 'public final fun print (message: kotlin.Int): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'it: kotlin.Int declared in <root>.testLrmFoo1.<anonymous>' type=kotlin.Int origin=null
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Int): kotlin.Unit declared in <root>.testLrmFoo1' type=kotlin.Unit origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Int): kotlin.Unit declared in <root>.testLrmFoo1' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=LAMBDA
FUN name:testLrmFoo2 visibility:public modality:FINAL <> (ints:kotlin.collections.List<kotlin.Int>) returnType:kotlin.Unit
VALUE_PARAMETER name:ints index:0 type:kotlin.collections.List<kotlin.Int>
BLOCK_BODY
CALL 'public final fun forEach (action: kotlin.Function1<T of <uninitialized parent>, kotlin.Unit>): kotlin.Unit [inline] declared in kotlin.collections' type=kotlin.Unit origin=null
action: BLOCK type=kotlin.Unit origin=LAMBDA
action: BLOCK type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=LAMBDA
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.Int) returnType:kotlin.Unit
VALUE_PARAMETER name:it index:0 type:kotlin.Int
BLOCK_BODY
@@ -75,5 +75,4 @@ FILE fqName:<root> fileName:/nonLocalReturn.kt
GET_OBJECT 'CLASS IR_EXTERNAL_DECLARATION_STUB OBJECT name:Unit modality:FINAL visibility:public superTypes:[kotlin.Any]' type=kotlin.Unit
CALL 'public final fun print (message: kotlin.Int): kotlin.Unit [inline] declared in kotlin.io' type=kotlin.Unit origin=null
message: GET_VAR 'it: kotlin.Int declared in <root>.testLrmFoo2.<anonymous>' type=kotlin.Int origin=null
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Int): kotlin.Unit declared in <root>.testLrmFoo2' type=kotlin.Unit origin=LAMBDA
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Int): kotlin.Unit declared in <root>.testLrmFoo2' type=kotlin.Function1<kotlin.Int, kotlin.Unit> origin=LAMBDA