// Uses 1 StringBuilder fun test1(s1: String, s2: String, s3: String) = (s1 + s2) + s3 // Uses 1 StringBuilder fun test2(s1: String, s2: String, s3: String) = s1 + (s2 + s3) // Uses 1 StringBuilder fun test3(s1: String, s2: String, s3: String, s4: String) = ((s1 + s2) + ((s3 + s4))) // Combination of String.plus and string literal // Uses 1 StringBuilder fun test4(s1: String, s2: String, s3: String) = "s1: $s1; " + "s2: $s2; " + "s3: $s3" // Combination of String.plus and nested string literal // Uses 1 StringBuilder fun test5(s1: String, s2: String, s3: String) = "${"s1:" + "${" " + s1};"}; " + "${"s2:" + "${" " + s2};"}; " + "${"s3:" + "${" " + s3}"}" // Top-level string concatenation element is a string literal // Uses 1 StringBuilder fun test6(s1: String, s2: String, s3: String) = "${"s1:" + "${" " + s1};"} ${"s2:" + "${" " + s2};"} ${"s3:" + "${" " + s3}"}" // 6 NEW java/lang/StringBuilder