Files
kotlin-fork/compiler/testData/ir/irText/expressions/extFunInvokeAsFun.txt
T
Dmitry Petrov 1eb693b8ee Transform variable-as-function calls for extension functions
In the following code example
  fun test(f: Any.() -> Unit) = 42.f()
front-end resolves variable-as-function call for 'f' as 'invoke'
with signature 'Function1<Any, Unit>#Any.() -> Unit'.
However, Function1<Any, Unit> has a single 'invoke' method
with signature 'Function1<Any, Unit>#(Any) -> Unit'.
This didn't cause any problems with loosely typed JVM and JS back-ends.
However, in IR with symbols this means a reference to non-existing
declaration.
2017-05-04 09:33:03 +03:00

18 lines
1.2 KiB
Plaintext
Vendored

FILE /extFunInvokeAsFun.kt
FUN public fun with1(receiver: kotlin.Any?, block: kotlin.Any?.() -> kotlin.Unit): kotlin.Unit
VALUE_PARAMETER value-parameter receiver: kotlin.Any?
VALUE_PARAMETER value-parameter block: kotlin.Any?.() -> kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='with1(Any?, Any?.() -> Unit): Unit'
CALL 'invoke(Any?): Unit' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'value-parameter block: Any?.() -> Unit' type=kotlin.Any?.() -> kotlin.Unit origin=VARIABLE_AS_FUNCTION
p1: GET_VAR 'value-parameter receiver: Any?' type=kotlin.Any? origin=null
FUN public fun with2(receiver: kotlin.Any?, block: kotlin.Any?.() -> kotlin.Unit): kotlin.Unit
VALUE_PARAMETER value-parameter receiver: kotlin.Any?
VALUE_PARAMETER value-parameter block: kotlin.Any?.() -> kotlin.Unit
BLOCK_BODY
RETURN type=kotlin.Nothing from='with2(Any?, Any?.() -> Unit): Unit'
CALL 'invoke(Any?): Unit' type=kotlin.Unit origin=INVOKE
$this: GET_VAR 'value-parameter block: Any?.() -> Unit' type=kotlin.Any?.() -> kotlin.Unit origin=VARIABLE_AS_FUNCTION
p1: GET_VAR 'value-parameter receiver: Any?' type=kotlin.Any? origin=null