FILE fqName: fileName:/variableAsFunctionCall.kt FUN name:k visibility:public modality:FINAL <> ($receiver:kotlin.String) returnType:kotlin.Function0 $receiver: VALUE_PARAMETER name: type:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun k (): kotlin.Function0 declared in ' FUN_EXPR type=kotlin.Function0 origin=LAMBDA FUN LOCAL_FUNCTION_FOR_LAMBDA name: visibility:local modality:FINAL <> () returnType:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='local final fun (): kotlin.String declared in .k' GET_VAR ': kotlin.String declared in .k' type=kotlin.String origin=null FUN name:test1 visibility:public modality:FINAL <> (f:kotlin.Function0) returnType:kotlin.Unit VALUE_PARAMETER name:f index:0 type:kotlin.Function0 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test1 (f: kotlin.Function0): kotlin.Unit declared in ' CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.Unit origin=INVOKE $this: GET_VAR 'f: kotlin.Function0 declared in .test1' type=kotlin.Function0 origin=VARIABLE_AS_FUNCTION FUN name:test2 visibility:public modality:FINAL <> (f:@[ExtensionFunctionType] kotlin.Function1) returnType:kotlin.Unit VALUE_PARAMETER name:f index:0 type:@[ExtensionFunctionType] kotlin.Function1 BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test2 (f: @[ExtensionFunctionType] kotlin.Function1): kotlin.Unit declared in ' CALL 'public abstract fun invoke (p1: P1 of kotlin.Function1): R of kotlin.Function1 [operator] declared in kotlin.Function1' type=kotlin.Unit origin=INVOKE $this: GET_VAR 'f: @[ExtensionFunctionType] kotlin.Function1 declared in .test2' type=@[ExtensionFunctionType] kotlin.Function1 origin=VARIABLE_AS_FUNCTION p1: CONST String type=kotlin.String value="hello" FUN name:test3 visibility:public modality:FINAL <> () returnType:kotlin.String BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test3 (): kotlin.String declared in ' CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.String origin=null $this: CALL 'public final fun k (): kotlin.Function0 declared in ' type=kotlin.Function0 origin=null $receiver: CONST String type=kotlin.String value="hello" FUN name:test4 visibility:public modality:FINAL <> (ns:kotlin.String?) returnType:kotlin.String? VALUE_PARAMETER name:ns index:0 type:kotlin.String? BLOCK_BODY RETURN type=kotlin.Nothing from='public final fun test4 (ns: kotlin.String?): kotlin.String? declared in ' BLOCK type=kotlin.String? origin=SAFE_CALL VAR IR_TEMPORARY_VARIABLE name:tmp_0 type:kotlin.Function0? [val] BLOCK type=kotlin.Function0? origin=SAFE_CALL VAR IR_TEMPORARY_VARIABLE name:tmp_1 type:kotlin.String? [val] GET_VAR 'ns: kotlin.String? declared in .test4' type=kotlin.String? origin=null WHEN type=kotlin.Function0? origin=null BRANCH if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ arg0: GET_VAR 'val tmp_1: kotlin.String? [val] declared in .test4' type=kotlin.String? origin=null arg1: CONST Null type=kotlin.Nothing? value=null then: CONST Null type=kotlin.Nothing? value=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'public final fun k (): kotlin.Function0 declared in ' type=kotlin.Function0 origin=null $receiver: GET_VAR 'val tmp_1: kotlin.String? [val] declared in .test4' type=kotlin.String? origin=null WHEN type=kotlin.String? origin=null BRANCH if: CALL 'public final fun EQEQ (arg0: kotlin.Any?, arg1: kotlin.Any?): kotlin.Boolean declared in kotlin.internal.ir' type=kotlin.Boolean origin=EQEQ arg0: GET_VAR 'val tmp_0: kotlin.Function0? [val] declared in .test4' type=kotlin.Function0? origin=null arg1: CONST Null type=kotlin.Nothing? value=null then: CONST Null type=kotlin.Nothing? value=null BRANCH if: CONST Boolean type=kotlin.Boolean value=true then: CALL 'public abstract fun invoke (): R of kotlin.Function0 [operator] declared in kotlin.Function0' type=kotlin.String origin=null $this: GET_VAR 'val tmp_0: kotlin.Function0? [val] declared in .test4' type=kotlin.Function0? origin=null