[JVM IR] Use append(Char) for 1-length string literals in string

templates and plus concatenations.

This is slightly more efficient and mirrors the behavior of the non-IR
backend for templates (but not for plus concatenations).

#KT-36638 Fixed
This commit is contained in:
Mark Punzalan
2020-02-12 11:26:59 -08:00
committed by Dmitry Petrov
parent bd9877cc62
commit 4234fa79c0
9 changed files with 78 additions and 17 deletions
+2 -3
View File
@@ -1,6 +1,3 @@
// IGNORE_BACKEND: JVM_IR
// TODO KT-36638 Use 'java/lang/StringBuilder.append (C)Ljava/lang/StringBuilder;' when appending single character in JVM_IR
// KT-5016 wrong StringBuilder append method invoked
class kt5016 {
fun f1(name : String) : String {
@@ -10,4 +7,6 @@ class kt5016 {
// 0 INVOKEVIRTUAL java/lang/StringBuilder.append \(Ljava/lang/Object;\)Ljava/lang/StringBuilder
// 2 INVOKEVIRTUAL java/lang/StringBuilder.append \(Ljava/lang/String;\)Ljava/lang/StringBuilder
// 1 INVOKEVIRTUAL java/lang/StringBuilder.append \(C\)Ljava/lang/StringBuilder
// 3 INVOKEVIRTUAL java/lang/StringBuilder.append
// 1 INVOKEVIRTUAL java/lang/StringBuilder.toString