| fun String.k(): Function0<String> { |
| return local fun <anonymous>(): String { |
| return <this> |
| } |
| |
| } |
| |
| fun test1(f: Function0<Unit>) { |
| return f.invoke() |
| } |
| |
| fun test2(f: @ExtensionFunctionType Function1<String, Unit>) { |
| return f.invoke(p1 = "hello") |
| } |
| |
| fun test3(): String { |
| return "hello".k().invoke() |
| } |
| |
| fun test4(ns: String?): String? { |
| return { // BLOCK |
| val tmp1_safe_receiver: Function0<String>? = { // BLOCK |
| val tmp0_safe_receiver: String? = ns |
| when { |
| EQEQ(arg0 = tmp0_safe_receiver, arg1 = null) -> null |
| else -> tmp0_safe_receiver.k() |
| } |
| } |
| when { |
| EQEQ(arg0 = tmp1_safe_receiver, arg1 = null) -> null |
| else -> tmp1_safe_receiver.invoke() |
| } |
| } |
| } |