Introduce IrFunctionExpression IR element

Use it to represent proper function expressions (lambdas and anonymous
functions).
This commit is contained in:
Dmitry Petrov
2019-07-15 10:42:50 +03:00
parent 022275b781
commit ed2b4a8bec
40 changed files with 131 additions and 133 deletions
@@ -22,12 +22,11 @@ FILE fqName:<root> fileName:/delegateFieldWithAnnotations.kt
EXPRESSION_BODY
CALL 'public final fun lazy <T> (initializer: kotlin.Function0<T of kotlin.lazy>): kotlin.Lazy<T of kotlin.lazy> declared in kotlin' type=kotlin.Lazy<kotlin.Int> origin=null
<T>: kotlin.Int
initializer: BLOCK type=kotlin.Function0<kotlin.Int> origin=LAMBDA
initializer: FUN_EXPR type=kotlin.Function0<kotlin.Int>
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.test1$delegate'
CONST Int type=kotlin.Int value=42
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.test1$delegate' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Int
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [delegated,val]
BLOCK_BODY
@@ -36,12 +36,11 @@ FILE fqName:<root> fileName:/localDelegatedPropertiesWithAnnotations.kt
VAR DELEGATE name:test$delegate type:kotlin.Lazy<kotlin.Int> [val]
CALL 'public final fun lazy <T> (initializer: kotlin.Function0<T of kotlin.lazy>): kotlin.Lazy<T of kotlin.lazy> declared in kotlin' type=kotlin.Lazy<kotlin.Int> origin=null
<T>: kotlin.Int
initializer: BLOCK type=kotlin.Function0<kotlin.Int> origin=LAMBDA
initializer: FUN_EXPR type=kotlin.Function0<kotlin.Int>
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <anonymous> (): kotlin.Int declared in <root>.foo'
CONST Int type=kotlin.Int value=42
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.foo' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test> visibility:local modality:FINAL <> () returnType:kotlin.Int
BLOCK_BODY
RETURN type=kotlin.Nothing from='local final fun <get-test> (): kotlin.Int declared in <root>.foo'