package foo

class D

open class A

open class B : A()

open class C : B()

fun box(): String {
    val a: Any = A()
    val b: Any = B()
    val c: Any = C()
    if (a !is A) return "a !is A"

    val t = a is A
    if (!t) return "t = a is A; t != true"

    if (b !is A) return "b !is A"
    if (b !is B) return "b !is B"

    if (c !is A) return "c !is A"
    if (c !is B) return "c !is B"
    if (c !is C) return "c !is C"

    if (a is D) return "a is D"
    if (b is D) return "b is D"

    return "OK"
}