// SKIP_TXT // !DIAGNOSTICS: -UNUSED_VARIABLE interface A { fun foo(): E } interface B : A interface C : A fun bar(a: A, w: T) { baz(a, w) // OK in FE1.0 if (a is B) { baz(a, 1) // OK in FE1.0 baz(a, w) // Type mismatch: Required Int, but found E ) <: A")!>baz(a, "") } if (a is B || a is C) { baz(a, w) // OK in FE 1.0 (Smart cast doesn't work), fail at FIR: it infers F to `LBU(Int, Long)` and then `w` is considered inapplicable } } fun baz(a: A, f: F) {}