KJS: allow to use KClass::isInstance; implement isInstance in KClassImpl

This commit is contained in:
Zalim Bashorov
2016-10-15 17:36:06 +03:00
parent 6caf3c1c0f
commit a085df914f
7 changed files with 37 additions and 4 deletions
@@ -0,0 +1,22 @@
package foo
import kotlin.reflect.KClass
fun <A : Any, B : A> check(k: KClass<A>, instance: B, nonInstance: Any) {
assertTrue(k.isInstance(instance))
assertFalse(k.isInstance(nonInstance))
assertFalse(k.isInstance(null))
}
fun box(): String {
check(A::class, A(), O)
check(A::class, B(), O)
check(O::class, O, object {})
check(I::class, object : I {}, object {})
check(E::class, E.X, A())
check(E::class, E.Y, B())
check(E::class, E.Z, O)
check(E.Y::class, E.Y, E.X)
return "OK"
}