Properly process special symbols during indy-with-constants concatenation

#KT-47320 Fixed
This commit is contained in:
Mikhael Bogdanov
2021-06-25 07:13:48 +02:00
parent e947556aaa
commit 0fd1f549a9
9 changed files with 69 additions and 2 deletions
@@ -0,0 +1,17 @@
// JVM_TARGET: 9
fun box(a: String, b: String?) {
val s = a + "\u0001" + 2.toChar() + 3.toChar() + 4L + b + 5.0 + 6F + '7' + b + "\u0002" + 1.toChar()
}
// 1 INVOKEDYNAMIC makeConcatWithConstants
// JVM_TEMPLATES
// 1 "\\u0001\\u0002\\u0002\\u00034\\u00015.06.07\\u0001\\u0002\\u0002"
// 2 "\\u0001"
// 2 "\\u0002"
// JVM_IR_TEMPLATES
// 1 "\\u0001\\u0002\\u00015.06.07\\u0001\\u0002"
// 1 "\\u0001\\u0002\\u00034"
// 1 "\\u0002\\u0001"
@@ -0,0 +1,10 @@
// JVM_TARGET: 9
fun test(a: String, b: String?): String {
return a + "\u0001" + 2.toChar() + 3.toChar() + 4L + b + 5.0 + 6F + '7' + b + "\u0002" + 1.toChar()
}
fun box(): String {
val test = test("O", "K")
return if (test != "O\u0001\u0002\u00034K5.06.07K\u0002\u0001") "fail ${test}" else "OK"
}