Generate is check for inline classes same as for primitives

Should be improved when inline class is based on non-null reference
This commit is contained in:
Mikhail Zarechenskiy
2018-02-12 03:59:38 +03:00
parent d606e5bc89
commit a88dbefcd9
9 changed files with 134 additions and 15 deletions

View File

@@ -0,0 +1,25 @@
// !LANGUAGE: +InlineClasses
inline class UInt(val u: Int) {
fun member() {}
}
fun UInt?.extension() {}
fun test(a: Any, b: Any?) {
if (a is UInt) {
a.member()
}
if (b is UInt?) {
b.extension()
}
}
// 2 INSTANCEOF UInt
// 1 CHECKCAST UInt
// 1 INVOKEVIRTUAL UInt.unbox
// 2 INVOKESTATIC UInt\$Erased.member
// 0 intValue