Language feature for new inline class mangling rules (since 1.4)

This commit is contained in:
Dmitry Petrov
2020-05-28 19:13:57 +03:00
parent 94509bdb4e
commit a270ee094c
26 changed files with 296 additions and 6 deletions
@@ -0,0 +1,13 @@
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
inline class S(val x: String)
class Test {
fun getO() = S("O")
val k = S("K")
}
fun box(): String {
val t = Test()
return t.getO().x + t.k.x
}
@@ -0,0 +1,16 @@
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
// FILE: 1.kt
package test
inline class S(val string: String)
inline fun foo() = S("OK")
// FILE: 2.kt
import test.*
fun box() : String =
foo().string
@@ -0,0 +1,16 @@
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
// FILE: 1.kt
package test
inline class S(val string: String)
inline val foo get() = S("OK")
// FILE: 2.kt
import test.*
fun box() : String = foo.string
@@ -0,0 +1,16 @@
// !LANGUAGE: +InlineClasses +MangleClassMembersReturningInlineClasses
// FILE: 1.kt
package test
inline class S(val string: String)
inline fun foo() = S("OK")
// FILE: 2.kt
import test.*
fun box() : String =
foo().string
@@ -0,0 +1,16 @@
// !LANGUAGE: +InlineClasses +MangleClassMembersReturningInlineClasses
// FILE: 1.kt
package test
inline class S(val string: String)
inline val foo get() = S("OK")
// FILE: 2.kt
import test.*
fun box() : String = foo.string
@@ -0,0 +1,17 @@
// !LANGUAGE: +InlineClasses -MangleClassMembersReturningInlineClasses
// IGNORE_BACKEND: JVM_IR
inline class S(val x: String)
class Test {
fun getO() = S("O")
val k = S("K")
}
fun box(): String {
val t = Test()
return t.getO().x + t.k.x
}
// 1 public final getO\(\)Ljava/lang/String;
// 1 public final getK\(\)Ljava/lang/String;