Files
kotlin-fork/compiler/testData/codegen/bytecodeText/inlineClasses/toStringOfReferenceInlineClassValue.kt
T
2021-11-09 21:04:37 +03:00

18 lines
583 B
Kotlin
Vendored

// !LANGUAGE: +InlineClasses
// Completely incorrect bytecode - see `box/inlineClasses/toStringOfUnboxedNullable.kt`
// IGNORE_BACKEND: JVM
// FILE: Z.kt
inline class Z(val x: Any)
// FILE: test.kt
fun testZ(z: Z) = z.toString()
fun testZT(z: Z) = "$z"
fun testNZ(z: Z?) = z?.toString() // `Z?` is unboxed into `Any?` even before the null check
fun testNZA(z: Z?) = z.toString() // so all of these call toString-impl
fun testNZT(z: Z?) = "$z"
// @TestKt.class:
// 5 INVOKESTATIC Z\.toString-impl \(Ljava/lang/Object;\)Ljava/lang/String;
// 0 INVOKESTATIC java/lang/String.valueOf