JVM_IR KT-45103 optimize direct invoke for lambdas and callable refs
This commit is contained in:
committed by
teamcityserver
parent
bfb1a06f3d
commit
851980e36f
+4
-2
@@ -3,12 +3,14 @@
|
||||
|
||||
import kotlin.reflect.*
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
object E
|
||||
|
||||
operator fun E.getValue(receiver: Any?, property: KProperty<*>): String =
|
||||
if (property.returnType.classifier == String::class) "OK" else "Fail"
|
||||
|
||||
fun box(): String = {
|
||||
fun box(): String = eval {
|
||||
val x: String by E
|
||||
x
|
||||
}()
|
||||
}
|
||||
|
||||
+5
-7
@@ -3,10 +3,8 @@ import kotlin.reflect.KProperty
|
||||
operator fun Int.provideDelegate(thiz: Any?, property: KProperty<*>): String = property.name
|
||||
inline operator fun String.getValue(thiz: Any?, property: KProperty<*>): String = property.name
|
||||
|
||||
fun box(): String = with(42) {
|
||||
val O by this
|
||||
O
|
||||
} + {
|
||||
val K by ""
|
||||
K
|
||||
}()
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
fun box(): String =
|
||||
with(42) { val O by this; O } + eval { val K by ""; K }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user