// FIR_DISABLE_LAZY_RESOLVE_CHECKS // FIR_IDENTICAL // !LANGUAGE: +DefinitelyNonNullableTypes interface A { fun foo(x: T): T fun bar(x: T & Any): T & Any } interface B : A { override fun foo(x: T1): T1 override fun bar(x: T1 & Any): T1 & Any } interface C : A { override fun foo(x: T2 & Any): T2 & Any override fun bar(x: T2): T2 } interface D : A { override fun foo(x: String?): String? override fun bar(x: String): String } interface E : A { override fun foo(x: String): String override fun bar(x: String): String } interface F : A { override fun foo(x: String): String override fun bar(x: String?): String? } interface G : A { override fun foo(x: T3): T3 override fun bar(x: T3): T3 }