blob: c958aebdceb9cd37649ae38f35f1de03d5d759bd [file]
// FIR_IDENTICAL
// !LANGUAGE: +DefinitelyNonNullableTypes
interface A<T> {
fun foo(x: T): T
fun bar(x: T & Any): T & Any
}
interface B<T1> : A<T1> {
override fun foo(x: T1): T1
override fun bar(x: T1 & Any): T1 & Any
}
interface C<T2> : A<T2> {
<!NOTHING_TO_OVERRIDE!>override<!> fun foo(x: T2 & Any): T2 & Any
<!NOTHING_TO_OVERRIDE!>override<!> fun bar(x: T2): T2
}
interface D : A<String?> {
override fun foo(x: String?): String?
override fun bar(x: String): String
}
interface E : A<String> {
override fun foo(x: String): String
override fun bar(x: String): String
}
interface F : A<String?> {
<!NOTHING_TO_OVERRIDE!>override<!> fun foo(x: String): String
<!NOTHING_TO_OVERRIDE!>override<!> fun bar(x: String?): String?
}
interface G<T3 : Any> : A<T3> {
override fun foo(x: T3): T3
override fun bar(x: T3): T3
}