// EXPECTED_REACHABLE_NODES: 1289 package foo class A class B fun apply(x: T, fn: T.()->R): R = x.fn() inline fun test(x: Any, y: Any): Boolean = x is T && apply(y) { this is R } fun box(): String { val a = A() val b = B() assertEquals(true, test(a, b), "test(a, b)") assertEquals(false, test(a, a), "test(a, a)") assertEquals(false, test(b, b), "test(b, b)") assertEquals(false, test(b, a), "test(b, a)") return "OK" }