// !LANGUAGE: +DefinitelyNonNullableTypes +ProhibitUsingNullableTypeParameterAgainstNotNullAnnotated // FILE: A.java import org.jetbrains.annotations.*; public interface A { public T foo(T x) { return x; } @NotNull public T bar(@NotNull T x) {} } // FILE: main.kt 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 }