Introduce IrFunctionExpression IR element
Use it to represent proper function expressions (lambdas and anonymous functions).
This commit is contained in:
+1
-2
@@ -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
|
||||
|
||||
Vendored
+1
-2
@@ -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'
|
||||
|
||||
@@ -96,12 +96,11 @@ FILE fqName:<root> fileName:/classLevelProperties.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>.C.test7$delegate'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.C.test7$delegate' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
|
||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test7> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
|
||||
correspondingProperty: PROPERTY name:test7 visibility:public modality:FINAL [delegated,val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
|
||||
@@ -4,12 +4,11 @@ FILE fqName:<root> fileName:/delegatedProperties.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
|
||||
@@ -42,12 +41,11 @@ FILE fqName:<root> fileName:/delegatedProperties.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>.C.test2$delegate'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.C.test2$delegate' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
|
||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> ($this:<root>.C) returnType:kotlin.Int
|
||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [delegated,val]
|
||||
$this: VALUE_PARAMETER name:<this> type:<root>.C
|
||||
|
||||
@@ -5,12 +5,11 @@ FILE fqName:<root> fileName:/localDelegatedProperties.kt
|
||||
VAR DELEGATE name:x$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>.test1'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.test1' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
|
||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-x> visibility:local modality:FINAL <> () returnType:kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <get-x> (): kotlin.Int declared in <root>.test1'
|
||||
|
||||
@@ -73,12 +73,11 @@ FILE fqName:<root> fileName:/packageLevelProperties.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>.test7$delegate'
|
||||
CONST Int type=kotlin.Int value=42
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (): kotlin.Int declared in <root>.test7$delegate' type=kotlin.Function0<kotlin.Int> origin=LAMBDA
|
||||
FUN DELEGATED_PROPERTY_ACCESSOR name:<get-test7> visibility:public modality:FINAL <> () returnType:kotlin.Int
|
||||
correspondingProperty: PROPERTY name:test7 visibility:public modality:FINAL [delegated,val]
|
||||
BLOCK_BODY
|
||||
|
||||
@@ -2,13 +2,12 @@ FILE fqName:<root> fileName:/lambdas.kt
|
||||
PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test1 type:kotlin.Function1<kotlin.String, kotlin.String> visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=kotlin.Function1<kotlin.String, kotlin.String> origin=LAMBDA
|
||||
FUN_EXPR type=kotlin.Function1<kotlin.String, kotlin.String>
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (it:kotlin.String) returnType:kotlin.String
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.String
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.String): kotlin.String declared in <root>.test1'
|
||||
GET_VAR 'it: kotlin.String declared in <root>.test1.<anonymous>' type=kotlin.String origin=null
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.String): kotlin.String declared in <root>.test1' type=kotlin.Function1<kotlin.String, kotlin.String> origin=LAMBDA
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test1> visibility:public modality:FINAL <> () returnType:kotlin.Function1<kotlin.String, kotlin.String>
|
||||
correspondingProperty: PROPERTY name:test1 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
@@ -17,7 +16,7 @@ FILE fqName:<root> fileName:/lambdas.kt
|
||||
PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test2 type:@[ExtensionFunctionType] kotlin.Function2<kotlin.Any, kotlin.Any, kotlin.Any> visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=@[ExtensionFunctionType] kotlin.Function2<kotlin.Any, kotlin.Any, kotlin.Int> origin=LAMBDA
|
||||
FUN_EXPR type=@[ExtensionFunctionType] kotlin.Function2<kotlin.Any, kotlin.Any, kotlin.Int>
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> ($receiver:kotlin.Any, it:kotlin.Any) returnType:kotlin.Int
|
||||
$receiver: VALUE_PARAMETER name:<this> type:kotlin.Any
|
||||
VALUE_PARAMETER name:it index:0 type:kotlin.Any
|
||||
@@ -25,7 +24,6 @@ FILE fqName:<root> fileName:/lambdas.kt
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (it: kotlin.Any): kotlin.Int declared in <root>.test2'
|
||||
CALL 'public open fun hashCode (): kotlin.Int declared in kotlin.Any' type=kotlin.Int origin=null
|
||||
$this: GET_VAR 'it: kotlin.Any declared in <root>.test2.<anonymous>' type=kotlin.Any origin=null
|
||||
FUNCTION_REFERENCE 'local final fun <anonymous> (it: kotlin.Any): kotlin.Int declared in <root>.test2' type=@[ExtensionFunctionType] kotlin.Function2<kotlin.Any, kotlin.Any, kotlin.Int> origin=LAMBDA
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test2> visibility:public modality:FINAL <> () returnType:@[ExtensionFunctionType] kotlin.Function2<kotlin.Any, kotlin.Any, kotlin.Any>
|
||||
correspondingProperty: PROPERTY name:test2 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
@@ -34,14 +32,13 @@ FILE fqName:<root> fileName:/lambdas.kt
|
||||
PROPERTY name:test3 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test3 type:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=LAMBDA
|
||||
FUN_EXPR type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit>
|
||||
FUN LOCAL_FUNCTION_FOR_LAMBDA name:<anonymous> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:j index:1 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
RETURN type=kotlin.Nothing from='local final fun <anonymous> (i: kotlin.Int, j: kotlin.Int): kotlin.Unit declared in <root>.test3'
|
||||
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> (i: kotlin.Int, j: kotlin.Int): kotlin.Unit declared in <root>.test3' type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=LAMBDA
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test3> visibility:public modality:FINAL <> () returnType:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit>
|
||||
correspondingProperty: PROPERTY name:test3 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
@@ -50,12 +47,11 @@ FILE fqName:<root> fileName:/lambdas.kt
|
||||
PROPERTY name:test4 visibility:public modality:FINAL [val]
|
||||
FIELD PROPERTY_BACKING_FIELD name:test4 type:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> visibility:public [final,static]
|
||||
EXPRESSION_BODY
|
||||
BLOCK type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
||||
FUN_EXPR type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit>
|
||||
FUN name:<no name provided> visibility:local modality:FINAL <> (i:kotlin.Int, j:kotlin.Int) returnType:kotlin.Unit
|
||||
VALUE_PARAMETER name:i index:0 type:kotlin.Int
|
||||
VALUE_PARAMETER name:j index:1 type:kotlin.Int
|
||||
BLOCK_BODY
|
||||
FUNCTION_REFERENCE 'local final fun <no name provided> (i: kotlin.Int, j: kotlin.Int): kotlin.Unit declared in <root>.test4' type=kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit> origin=ANONYMOUS_FUNCTION
|
||||
FUN DEFAULT_PROPERTY_ACCESSOR name:<get-test4> visibility:public modality:FINAL <> () returnType:kotlin.Function2<kotlin.Int, kotlin.Int, kotlin.Unit>
|
||||
correspondingProperty: PROPERTY name:test4 visibility:public modality:FINAL [val]
|
||||
BLOCK_BODY
|
||||
|
||||
Reference in New Issue
Block a user