Support indy concatenation
This commit is contained in:
@@ -8,6 +8,7 @@ fun box() {
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
"some constant" + "some constant" + "some constant" + "some constant" + // constant in this mode are inlined in recipe
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
|
||||
@@ -0,0 +1,23 @@
|
||||
// KOTLIN_CONFIGURATION_FLAGS: RUNTIME_STRING_CONCAT=indy
|
||||
// JVM_TARGET: 9
|
||||
class A
|
||||
|
||||
inline fun test(s: (String) -> Unit) {
|
||||
s("456")
|
||||
}
|
||||
|
||||
fun box(a: String, b: String?) {
|
||||
val s = a + "1" + "2" + 3 + 4L + b + 5.0 + 6F + '7' + A() + true + false + 1u
|
||||
|
||||
a.plus(b)
|
||||
b?.plus(a)
|
||||
val ref1 = a::plus
|
||||
val ref2 = b::plus
|
||||
|
||||
test("123"::plus)
|
||||
}
|
||||
|
||||
// 0 INVOKEDYNAMIC makeConcatWithConstants
|
||||
// 6 INVOKEDYNAMIC makeConcat
|
||||
// 0 append
|
||||
// 0 stringPlus
|
||||
+20
@@ -0,0 +1,20 @@
|
||||
// KOTLIN_CONFIGURATION_FLAGS: RUNTIME_STRING_CONCAT=indy
|
||||
// JVM_TARGET: 9
|
||||
fun box() {
|
||||
val z = "0"
|
||||
val result = z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
"some constant" +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z +
|
||||
z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z + z //200 + 1 constant
|
||||
|
||||
}
|
||||
// 2 INVOKEDYNAMIC makeConcat
|
||||
// 0 append
|
||||
// 0 stringPlus
|
||||
Reference in New Issue
Block a user