JVM_IR KT-45103 optimize direct invoke for lambdas and callable refs
This commit is contained in:
committed by
teamcityserver
parent
bfb1a06f3d
commit
851980e36f
@@ -5,13 +5,13 @@
|
||||
// CHECK_BYTECODE_TEXT
|
||||
// JVM_IR_TEMPLATES
|
||||
// 0 java/lang/invoke/LambdaMetafactory\.metafactory
|
||||
// 1 final class BigArityLambdaKt\$box\$1
|
||||
// 1 final class BigArityLambdaKt\$box\$lam\$1
|
||||
|
||||
fun box() =
|
||||
{ p0: String, p1: String, p2: Int, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, p8: Int, p9: Int,
|
||||
p10: Int, p11: Int, p12: Int, p13: Int, p14: Int, p15: Int, p16: Int, p17: Int, p18: Int, p19: Int,
|
||||
p20: Int, p21: Int, p22: Int, p23: Int, p24: Int, p25: Int, p26: Int, p27: Int, p28: Int, p29: Int
|
||||
fun box(): String {
|
||||
val lam = { p0: String, p1: String, p2: Int, p3: Int, p4: Int, p5: Int, p6: Int, p7: Int, p8: Int, p9: Int,
|
||||
p10: Int, p11: Int, p12: Int, p13: Int, p14: Int, p15: Int, p16: Int, p17: Int, p18: Int, p19: Int,
|
||||
p20: Int, p21: Int, p22: Int, p23: Int, p24: Int, p25: Int, p26: Int, p27: Int, p28: Int, p29: Int
|
||||
-> p0 + p1
|
||||
}(
|
||||
"O", "K", 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29
|
||||
)
|
||||
}
|
||||
return lam("O", "K", 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29)
|
||||
}
|
||||
@@ -8,5 +8,6 @@
|
||||
|
||||
fun box(): String {
|
||||
val ok = "OK"
|
||||
return { ok }()
|
||||
val lam = { ok }
|
||||
return lam()
|
||||
}
|
||||
|
||||
@@ -8,6 +8,7 @@
|
||||
|
||||
fun box(): String {
|
||||
var ok = "Failed"
|
||||
{ ok = "OK" }()
|
||||
val lam = { ok = "OK" }
|
||||
lam()
|
||||
return ok
|
||||
}
|
||||
|
||||
@@ -6,4 +6,11 @@
|
||||
// JVM_IR_TEMPLATES
|
||||
// 3 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
fun box() = { { "O" }() + { "K" }() }()
|
||||
fun box(): String {
|
||||
val lam1 = {
|
||||
val lamO = { "O" }
|
||||
val lamK = { "K" }
|
||||
lamO() + lamK()
|
||||
}
|
||||
return lam1()
|
||||
}
|
||||
|
||||
+2
-1
@@ -7,7 +7,8 @@
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
fun box(): String {
|
||||
val test = { i: Int -> i + 40 }(2)
|
||||
val lam = { i: Int -> i + 40 }
|
||||
val test = lam(2)
|
||||
if (test != 42) return "Failed: test=$test"
|
||||
|
||||
return "OK"
|
||||
|
||||
@@ -6,4 +6,7 @@
|
||||
// JVM_IR_TEMPLATES
|
||||
// 1 java/lang/invoke/LambdaMetafactory
|
||||
|
||||
fun box() = { "OK" }()
|
||||
fun box(): String {
|
||||
val lam = { "OK" }
|
||||
return lam()
|
||||
}
|
||||
|
||||
@@ -9,6 +9,7 @@
|
||||
var ok = "Failed"
|
||||
|
||||
fun box(): String {
|
||||
{ ok = "OK" }()
|
||||
val lam = { ok = "OK" }
|
||||
lam()
|
||||
return ok
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user