JVM IR: Avoid direct invokes in callable reference tests
Due to the direct invoke optimization, most callable reference tests were not generating callable references/lambdas.
This commit is contained in:
committed by
Alexander Udalov
parent
f0238766df
commit
7d59c7689c
+3
-3
@@ -1,13 +1,13 @@
|
||||
fun <T : Any, R> T.let(f: (T) -> R): R = f(this)
|
||||
fun <T : Any, R> T.myLet(f: (T) -> R): R = f(this)
|
||||
|
||||
fun box(): String {
|
||||
val o: String? = null
|
||||
|
||||
var state = 0
|
||||
|
||||
o?.let {
|
||||
o?.myLet {
|
||||
state = 1
|
||||
} ?: ({ state = 2 })()
|
||||
} ?: { state = 2 }.let { it() }
|
||||
|
||||
if (state != 2) return "Fail: $state"
|
||||
return "OK"
|
||||
|
||||
+2
-2
@@ -30,11 +30,11 @@ fun box(): String {
|
||||
val tmp = Unit
|
||||
{
|
||||
|
||||
}()
|
||||
}.let { it() }
|
||||
|
||||
val tmp2 = {
|
||||
|
||||
}()
|
||||
}.let { it() }
|
||||
|
||||
val tmp3 = Blumbs()
|
||||
tmp3.t = Unit
|
||||
|
||||
Reference in New Issue
Block a user