// FIR_IDENTICAL // !DIAGNOSTICS: -UNUSED_VARIABLE object X1 object X2 interface Base { fun foo(a: T1): X1 fun foo(a: T2, vararg args: Any): X2 } interface Derived : Base fun testDerived(base: Base, derived: Derived) { val test1: X1 = base.foo("") val test2: X1 = derived.foo("") } interface GenericBase { fun foo(x: T, a: T1): X1 } interface SpecializedDerived : GenericBase { fun foo(x: String, a: T2, vararg args: Any): X2 } fun testSpecializedDerived(derived: SpecializedDerived) { val test1: X1 = derived.foo("", "") }