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
-1
@@ -4,7 +4,10 @@ fun Array<String>.test1(): Array<String> {
|
||||
}
|
||||
|
||||
fun Array<String>.test1Nested(): Array<String> {
|
||||
val func = { i: Int -> { this }()}
|
||||
val func = { i: Int ->
|
||||
val lam = { this }
|
||||
lam()
|
||||
}
|
||||
return func(1)
|
||||
}
|
||||
|
||||
|
||||
@@ -3,10 +3,12 @@ class C(val i: Int) {
|
||||
operator fun component2() = i + 2
|
||||
}
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
fun doTest(l : Array<C>): String {
|
||||
var s = ""
|
||||
for ((a, b) in l) {
|
||||
s += {"$a:$b;"}()
|
||||
s += eval {"$a:$b;"}
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
Vendored
+3
-1
@@ -1,10 +1,12 @@
|
||||
operator fun Int.component1() = this + 1
|
||||
operator fun Int.component2() = this + 2
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
fun doTest(l : Array<Int>): String {
|
||||
var s = ""
|
||||
for ((a, b) in l) {
|
||||
s += {"$a:$b;"}()
|
||||
s += eval {"$a:$b;"}
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
Vendored
+3
-1
@@ -1,10 +1,12 @@
|
||||
operator fun Long.component1() = this + 1
|
||||
operator fun Long.component2() = this + 2
|
||||
|
||||
fun <T> eval(fn: () -> T) = fn()
|
||||
|
||||
fun doTest(l : Array<Long>): String {
|
||||
var s = ""
|
||||
for ((a, b) in l) {
|
||||
s += {"$a:$b;"}()
|
||||
s += eval { "$a:$b;" }
|
||||
}
|
||||
return s
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user