JVM IR: do not attempt to mangle function expressions

For some reasons, lambdas and function expressions are represented
slightly differently in psi2ir. Lambdas are translated to a block with a
function of origin LOCAL_FUNCTION_FOR_LAMBDA and name "<anonymous>", but
function expressions are translated to a block with DEFINED function
"<no name provided>".

Tweak the condition for detecting local functions a bit, to avoid
similar situation in the future if we add some other origins for local
functions.

 #KT-48207 Fixed
This commit is contained in:
Alexander Udalov
2021-08-11 22:01:04 +02:00
parent dd3eb53904
commit d124239025
10 changed files with 51 additions and 3 deletions
@@ -0,0 +1,6 @@
inline fun new(init: (Z) -> Unit): Z = Z(42)
inline class Z(val value: Int)
fun box(): String =
if (new(fun(z: Z) {}).value == 42) "OK" else "Fail"