mirror of
https://github.com/jlengrand/kotlin.git
synced 2026-05-08 15:53:19 +00:00
Correct the argument types of the StringBuilder.append
Modified AsmUtil to generate calls to more specific append methods in the StringBuilder class in order to save computation time and make less temporary objects. Also adds unit-test to verify that the append(Object) method was invoked 0 times while the append(String) 3 times Signed-off-by: Laszlo Hornyak <laszlo.hornyak@gmail.com>
This commit is contained in:
committed by
Alexander Udalov
parent
34e8cae89e
commit
9dec0fb779
10
compiler/testData/codegen/bytecodeText/kt5016.kt
Normal file
10
compiler/testData/codegen/bytecodeText/kt5016.kt
Normal file
@@ -0,0 +1,10 @@
|
||||
// KT-5016 wrong StringBuilder append method invoked
|
||||
class kt5016 {
|
||||
fun f1(name : String) : String {
|
||||
return "Hello $name!"
|
||||
}
|
||||
}
|
||||
|
||||
// 0 INVOKEVIRTUAL java/lang/StringBuilder.append \(Ljava/lang/Object;\)Ljava/lang/StringBuilder
|
||||
// 3 INVOKEVIRTUAL java/lang/StringBuilder.append \(Ljava/lang/String;\)Ljava/lang/StringBuilder
|
||||
// 1 INVOKEVIRTUAL java/lang/StringBuilder.toString
|
||||
11
compiler/testData/codegen/bytecodeText/kt5016int.kt
Normal file
11
compiler/testData/codegen/bytecodeText/kt5016int.kt
Normal file
@@ -0,0 +1,11 @@
|
||||
// KT-5016 wrong StringBuilder append method invoked
|
||||
class kt5016int {
|
||||
fun f1(num : Int) : String {
|
||||
return "Hello to all the $num!"
|
||||
}
|
||||
}
|
||||
|
||||
// 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 \(I\)Ljava/lang/StringBuilder
|
||||
// 1 INVOKEVIRTUAL java/lang/StringBuilder.toString
|
||||
10
compiler/testData/codegen/bytecodeText/kt5016intOrNull.kt
Normal file
10
compiler/testData/codegen/bytecodeText/kt5016intOrNull.kt
Normal file
@@ -0,0 +1,10 @@
|
||||
// KT-5016 wrong StringBuilder append method invoked
|
||||
class kt5016intOrNull {
|
||||
fun f1(num : Int?) : String {
|
||||
return "Hello to all the $num!"
|
||||
}
|
||||
}
|
||||
|
||||
// 1 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.toString
|
||||
Reference in New Issue
Block a user