Support boxing for inline classes on function calls
This commit is contained in:
+17
@@ -0,0 +1,17 @@
|
||||
// !LANGUAGE: +InlineClasses
|
||||
|
||||
inline class InlineNotNullPrimitive(val x: Int)
|
||||
inline class InlineNotNullReference(val y: String)
|
||||
|
||||
fun <T> testNotNullPrimitive(a: Any, b: T, c: InlineNotNullPrimitive, d: InlineNotNullPrimitive?) {}
|
||||
fun <T> testNotNullReference(a: Any, b: T, c: InlineNotNullReference, d: InlineNotNullReference?) {}
|
||||
|
||||
fun test(a: InlineNotNullPrimitive, b: InlineNotNullReference) {
|
||||
testNotNullPrimitive(a, a, a, a) // 3 box
|
||||
testNotNullReference(b, b, b, b) // 2 box
|
||||
}
|
||||
|
||||
// 3 INVOKESTATIC InlineNotNullPrimitive\$Erased.box
|
||||
// 2 INVOKESTATIC InlineNotNullReference\$Erased.box
|
||||
|
||||
// 0 valueOf
|
||||
Reference in New Issue
Block a user