Remove Concat and StringPlus intrinsics in favor of IrStringConcatenation.

This commit is contained in:
Steven Schäfer
2019-04-04 16:09:49 +02:00
committed by max-kammerer
parent 26c9d69252
commit f2392a6a28
20 changed files with 192 additions and 120 deletions

View File

@@ -4,7 +4,7 @@
// - In argument to 2nd call to foo() inside string literal
fun test(s1: String, s2: String, s3: String): String {
fun foo(s: String) = s
return "foo: " + foo(s1 + s2 + " ${foo("\${s3.length} = ${s3.length}")}")
return "foo: " + foo(s1 + s2 + " ${foo("\${s3.length} = ${s3.length} ")}") + " "
}
// 3 NEW java/lang/StringBuilder

View File

@@ -0,0 +1,8 @@
// IGNORE_BACKEND: JVM
fun f(s: String) = "$s"
fun g(s: String?) = "$s"
// 1 valueOf
// 0 NEW java/lang/StringBuilder

View File

@@ -0,0 +1,17 @@
// IGNORE_BACKEND: JVM
fun f(s: String?, t: String): String {
return s.plus(t)
}
fun g(s: String, t: Any?): String {
return "$s$t"
}
fun h(s: String, t: Any?): String {
return s + t
}
// 0 valueOf
// 0 NEW java/lang/StringBuilder
// 3 INVOKESTATIC kotlin/jvm/internal/Intrinsics.stringPlus