Optimize out trivial INSTANCEOF checks

#KT-18157 Fixed Target versions 1.1.4
This commit is contained in:
Dmitry Petrov
2017-05-29 13:44:28 +03:00
parent 74ee9ce68b
commit d559212d70
9 changed files with 97 additions and 35 deletions

View File

@@ -0,0 +1,24 @@
sealed class A {
class B : A()
class C : A()
}
inline fun foo(): A = A.B()
fun box(): String {
val a: A = foo()
val b: Boolean
when (a) {
is A.B -> b = true
is A.C -> b = false
}
return if (b) "OK" else "FAIL"
}
// 0 TABLESWITCH
// 0 LOOKUPSWITCH
// 0 ATHROW
// 0 INSTANCEOF
// 0 FAIL
// 0 POP