JVM_IR KT-47984 inplace arguments inlining for @InlineOnly functions

This commit is contained in:
Dmitry Petrov
2021-08-05 15:43:03 +03:00
committed by TeamCityServer
parent ec90649854
commit b01c13a4df
27 changed files with 1013 additions and 15 deletions
@@ -0,0 +1,18 @@
// FULL_JDK
// WITH_RUNTIME
fun test(xs: List<String>): Map<String, String> {
val result = linkedMapOf<String, String>()
for (x in xs) {
result[x] = x.zap("OK") ?: break
}
return result
}
fun String.zap(y: String): String? {
return if (this == "x") y else null
}
fun box(): String {
return test(listOf("x", "bcde", "a"))["x"]!!
}
@@ -0,0 +1,19 @@
// FULL_JDK
// WITH_RUNTIME
fun test(xs: List<String>, flag: Boolean = false): Map<String, String> {
val result = linkedMapOf<String, String>()
for (x in xs) {
if (x.length > 3) continue
result[x] = x.zap("OK", flag) ?: continue
}
return result
}
fun String.zap(y: String, flag: Boolean = false): String? {
return if (flag || this == "x") y else null
}
fun box(): String {
return test(listOf("a", "bcde", "x"))["x"]!!
}
@@ -0,0 +1,8 @@
// FULL_JDK
// WITH_RUNTIME
fun box(): String {
val m = HashMap<String, String>()
m["ok"] = "OK"
return m["ok"]!!
}
@@ -0,0 +1,10 @@
// FULL_JDK
// WITH_RUNTIME
class C(val xs: MutableList<String>)
fun box(): String {
val c = C(ArrayList<String>())
c.xs += listOf("OK")
return c.xs[0]
}
@@ -0,0 +1,8 @@
fun test() {
println("Hello, world!")
}
// JVM_IR_TEMPLATES:
// 0 ALOAD
// 0 ASTORE
@@ -0,0 +1,9 @@
// WITH_RUNTIME
import kotlin.math.sin
fun test(x: Double) = sin(2 * x)
// JVM_IR_TEMPLATES:
// 0 DSTORE
// 1 DLOAD