Files
kotlin/compiler/testData/codegen/bytecodeText/inlineClasses/inlineClassBoxingOnAssignment.kt
Mikhail Zarechenskiy 01d9be65bc Perform bytecode optimisations for inline classes
#KT-23742 Fixed
2018-06-18 11:52:36 +03:00

45 lines
1.1 KiB
Kotlin
Vendored

// !LANGUAGE: +InlineClasses
inline class InlineNotNullPrimitive(val x: Int)
inline class InlineNullablePrimitive(val x: Int?)
inline class InlineNotNullReference(val a: Any)
inline class InlineNullableReference(val a: Any?)
fun test1(a: InlineNotNullPrimitive) {
val a0 = a
val a1: Any = a
val a2: Any? = a
val a3: InlineNotNullPrimitive = a
val a4: InlineNotNullPrimitive? = a
}
fun test2(b: InlineNullablePrimitive) {
val b0 = b
val b1: Any = b
val b2: Any? = b
val b3: InlineNullablePrimitive = b
val b4: InlineNullablePrimitive? = b
}
fun test3(c: InlineNotNullReference) {
val c0 = c
val c1: Any = c
val c2: Any? = c
val c3: InlineNotNullReference = c
val c4: InlineNotNullReference? = c
}
fun test4(d: InlineNullableReference) {
val d0 = d
val d1: Any = d
val d2: Any? = d
val d3: InlineNullableReference = d
val d4: InlineNullableReference? = d
}
// 0 INVOKESTATIC InlineNotNullPrimitive\$Erased.box
// 0 INVOKESTATIC InlineNullablePrimitive\$Erased.box
// 0 INVOKESTATIC InlineNotNullReference\$Erased.box
// 0 INVOKESTATIC InlineNullableReference\$Erased.box
// 0 valueOf