741c1a864f
if it is unbound and the underlying type is reference type. If the underlying type is primitive, it is boxed and unboxed correctly, otherwise, it is simply casted and not unboxed. Additionally, generate functions for inliner with inline classes in signature, so unboxing works. The unboxing is removed after inlining. #KT-44722 Fixed
22 lines
370 B
Kotlin
Vendored
22 lines
370 B
Kotlin
Vendored
inline class Value(val value: Any)
|
|
|
|
object Foo {
|
|
fun foo(value: Value) {
|
|
res = value.value as String
|
|
}
|
|
|
|
fun bar(value: Value?) {
|
|
res = value?.value as String
|
|
}
|
|
}
|
|
|
|
var res = "FAIL"
|
|
|
|
fun box(): String {
|
|
Value("OK").let(Foo::foo)
|
|
if (res != "OK") return "FAIL 1: $res"
|
|
res = "FAIL"
|
|
|
|
Value("OK").let(Foo::bar)
|
|
return res
|
|
} |