// MODULE: m1 // FILE: a.kt package p public trait B { public fun foo(a: T, b : R) } // MODULE: m2(m1) // FILE: b.kt package p public trait C : B { override fun foo(a: Any?, b : R) } // MODULE: m3 // FILE: b.kt package p public trait B { public fun foo(a: T, b: R) } // MODULE: m4(m3, m2) // FILE: c.kt import p.* fun test(b: B?, c: C) { b?.foo(1, 1) c.foo(1, 1) if (b is C) { b?.foo(1, 1) } }