JVM IR: Avoid direct lambda invokes in inline tests
This commit is contained in:
committed by
Alexander Udalov
parent
f0760e0550
commit
2acfb3a41f
@@ -4,11 +4,11 @@
|
||||
package test
|
||||
|
||||
inline fun <T> doSmth(a: T) : String {
|
||||
return {a.toString()}()
|
||||
return { a.toString() }.let { it() }
|
||||
}
|
||||
|
||||
inline fun <T> doSmth2(a: T) : String {
|
||||
return {{a.toString()}()}()
|
||||
return { { a.toString() }.let { it() } }.let { it() }
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
+1
-1
@@ -54,7 +54,7 @@ inline fun test2(crossinline param: () -> String): String {
|
||||
|
||||
inline fun test22(crossinline param: () -> String): String {
|
||||
var result = "fail1"
|
||||
{{result = param()}()}()
|
||||
{ { result = param() }.let { it() } }.let { it() }
|
||||
|
||||
return result
|
||||
}
|
||||
|
||||
+1
-1
@@ -5,7 +5,7 @@ package test
|
||||
|
||||
|
||||
inline fun <R> call(crossinline f: () -> R) : R {
|
||||
return {f()} ()
|
||||
return { f() }.let { it() }
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
+1
-1
@@ -4,7 +4,7 @@
|
||||
package test
|
||||
|
||||
inline fun <R> call(crossinline f: () -> R) : R {
|
||||
return { f() }()
|
||||
return { f() }.let { it() }
|
||||
}
|
||||
|
||||
// FILE: 2.kt
|
||||
|
||||
Reference in New Issue
Block a user