Generate specialized 'toString' for inline classes when possible

#KT-25613
This commit is contained in:
Dmitry Petrov
2018-10-03 15:53:52 +03:00
parent f68ce4b35b
commit 5304754e88
13 changed files with 181 additions and 6 deletions
@@ -0,0 +1,23 @@
// !LANGUAGE: +InlineClasses
// FILE: Z.kt
inline class Z(val value: Int)
// FILE: test.kt
fun test1_1(z: Z) = "$z"
fun test1_2(z: Z) = "$z$z"
fun test1_many(z: Z) = "$z $z $z"
fun test1_concat1(z: Z) = "-" + z
fun test1_concat2(z: Z) = "$z" + z
fun test1_concat3(z: Z) = "-" + z + z
fun test2_1(z: Z?) = "$z"
fun test2_2(z: Z?) = "$z$z"
fun test2_many(z: Z?) = "$z $z $z"
fun test2_concat1(z: Z?) = "-" + z
fun test2_concat2(z: Z?) = "$z" + z
fun test2_concat3(z: Z?) = "-" + z + z
// @TestKt.class:
// 0 box
// 0 unbox