JVM_IR KT-45103 optimize direct invoke for lambdas and callable refs
This commit is contained in:
committed by
teamcityserver
parent
bfb1a06f3d
commit
851980e36f
+3
-1
@@ -1,8 +1,10 @@
|
||||
// FILE: 1.kt
|
||||
import a.*
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
abstract class B : A() {
|
||||
fun g() = { f() }()
|
||||
fun g() = eval { f() }
|
||||
}
|
||||
|
||||
fun box() = object : B() {
|
||||
|
||||
@@ -5,13 +5,15 @@ package test2
|
||||
import test.Actor
|
||||
import test.O2dScriptAction
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
class CompositeActor : Actor()
|
||||
|
||||
public open class O2dDialog : O2dScriptAction<CompositeActor>() {
|
||||
|
||||
fun test() = { owner }()
|
||||
fun test() = eval { owner }
|
||||
|
||||
fun test2() = { calc() }()
|
||||
fun test2() = eval { calc() }
|
||||
}
|
||||
|
||||
fun box(): String {
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
class Foo {
|
||||
private val fld: String = "O"
|
||||
get() = { field }() + "K"
|
||||
get() = eval { field } + "K"
|
||||
|
||||
val indirectFldGetter: () -> String = { fld }
|
||||
}
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
class Foo {
|
||||
private val fld: String = "O"
|
||||
get() = { field }() + "K"
|
||||
get() = eval { field } + "K"
|
||||
|
||||
val indirectFldGetter: () -> String = { fld }
|
||||
|
||||
|
||||
Reference in New Issue
Block a user