diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.kt deleted file mode 100644 index c2a98ea6dd1..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.kt +++ /dev/null @@ -1,75 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -public class B { - public void superAsIs(A a) {} - public void superNotNull(A a) {} - public void superNullable(A a) {} - - public void extendsAsIs(A a) {} - public void extendsNotNull(A a) {} - public void extendsNullable(A a) {} - - public void noBounds(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - - aAnyNotNullNotNullNotNull: A, - aAnyNotNullNotNullNull: A, - aAnyNotNullNullNotNull: A, - aAnyNotNullNullNull: A, - b: B -) { - b.superAsIs(aAnyNotNullNotNullNotNull) - b.superAsIs(aAnyNotNullNotNullNull) - b.superAsIs(aAnyNotNullNullNotNull) - b.superAsIs(aAnyNotNullNullNull) - - b.superNotNull(aAnyNotNullNotNullNotNull) - b.superNotNull(aAnyNotNullNotNullNull) - b.superNotNull(aAnyNotNullNullNotNull) - b.superNotNull(aAnyNotNullNullNull) - - // TODO: Bound for the first argument in "superNullable" contradicts to declared nullability of the parameter - // Do we need to ignore such arguments' nullability? - b.superNullable(aAnyNotNullNotNullNotNull) - b.superNullable(aAnyNotNullNotNullNull) - b.superNullable(aAnyNotNullNullNotNull) - b.superNullable(aAnyNotNullNullNull) - - b.extendsAsIs(aNotNullNotNullNotNull) - b.extendsAsIs(aNotNullNotNullNull) - b.extendsAsIs(aNotNullNullNotNull) - b.extendsAsIs(aNotNullNullNull) - - b.extendsNotNull(aNotNullNotNullNotNull) - b.extendsNotNull(aNotNullNotNullNull) - b.extendsNotNull(aNotNullNullNotNull) - b.extendsNotNull(aNotNullNullNull) - - b.extendsNullable(aNotNullNotNullNotNull) - b.extendsNullable(aNotNullNotNullNull) - b.extendsNullable(aNotNullNullNotNull) - b.extendsNullable(aNotNullNullNull) - - b.noBounds(aNotNullNotNullNotNull) - b.noBounds(aNotNullNotNullNull) - b.noBounds(aNotNullNullNotNull) - b.noBounds(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.txt deleted file mode 100644 index 76ce0f0969e..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/annotatedWildcards.txt +++ /dev/null @@ -1,24 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ aAnyNotNullNotNullNotNull: A, /*5*/ aAnyNotNullNotNullNull: A, /*6*/ aAnyNotNullNullNotNull: A, /*7*/ aAnyNotNullNullNull: A, /*8*/ b: B): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -public open class B { - public constructor B() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun extendsAsIs(/*0*/ a: A!): kotlin.Unit - public open fun extendsNotNull(/*0*/ a: A!): kotlin.Unit - public open fun extendsNullable(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open fun noBounds(/*0*/ a: A<*, *, *>!): kotlin.Unit - public open fun superAsIs(/*0*/ a: A!): kotlin.Unit - public open fun superNotNull(/*0*/ a: A!): kotlin.Unit - public open fun superNullable(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.kt deleted file mode 100644 index 453c490b656..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.kt +++ /dev/null @@ -1,51 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class A { - public String defaultField = ""; - @Nullable public String field = null; - - public String everythingNotNullable(String x) { return ""; } - - @DefaultNullable - public String everythingNullable(String x) { return ""; } - - @DefaultNullnessUnspecified - public String everythingUnknown(String x) { return ""; } - - @DefaultNullable - public String mixed(@NotNull String x) { return ""; } - - public String explicitlyNullnessUnspecified(@NullnessUnspecified String x) { return ""; } -} - -// FILE: main.kt - -fun main(a: A) { - a.everythingNotNullable(null)?.length - a.everythingNotNullable(null).length - a.everythingNotNullable("").length - - a.everythingNullable(null).length - a.everythingNullable(null)?.length - - a.everythingUnknown(null).length - a.everythingUnknown(null)?.length - - a.mixed(null).length - a.mixed(null)?.length - a.mixed("")?.length - - a.explicitlyNullnessUnspecified("").length - a.explicitlyNullnessUnspecified("")?.length - a.explicitlyNullnessUnspecified(null).length - - a.defaultField?.length - a.defaultField.length - - a.field?.length - a.field.length -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.txt deleted file mode 100644 index 5ede9fb49ab..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/defaults.txt +++ /dev/null @@ -1,17 +0,0 @@ -package - -public fun main(/*0*/ a: A): kotlin.Unit - -@org.jspecify.annotations.DefaultNonNull public open class A { - public constructor A() - public final var defaultField: kotlin.String - @org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String? - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun everythingNotNullable(/*0*/ x: kotlin.String): kotlin.String - @org.jspecify.annotations.DefaultNullable public open fun everythingNullable(/*0*/ x: kotlin.String?): @org.jspecify.annotations.DefaultNullable kotlin.String? - @org.jspecify.annotations.DefaultNullnessUnspecified public open fun everythingUnknown(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullnessUnspecified kotlin.String! - public open fun explicitlyNullnessUnspecified(/*0*/ @org.jspecify.annotations.NullnessUnspecified x: @org.jspecify.annotations.NullnessUnspecified kotlin.String!): kotlin.String - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - @org.jspecify.annotations.DefaultNullable public open fun mixed(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String): @org.jspecify.annotations.DefaultNullable kotlin.String? - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.kt deleted file mode 100644 index 4acf07de7db..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.kt +++ /dev/null @@ -1,52 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE ignore -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - @Nullable public String field = null; - - @Nullable - public String foo(@NotNull String x, @NullnessUnspecified CharSequence y) { - return ""; - } - - @NotNull - public String bar() { - return ""; - } - - @DefaultNonNull - public String everythingNotNullable(String x) { return ""; } - - @DefaultNullable - public String everythingNullable(String x) { return ""; } - - @DefaultNullnessUnspecified - public String everythingUnknown(String x) { return ""; } -} - -// FILE: main.kt - -fun main(a: A) { - a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length - - a.bar().length - a.bar()!!.length - - a.field?.length - a.field.length - - a.everythingNotNullable(null)?.length - a.everythingNotNullable(null).length - a.everythingNotNullable("").length - - a.everythingNullable(null).length - a.everythingNullable(null)?.length - - a.everythingUnknown(null).length - a.everythingUnknown(null)?.length -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.txt deleted file mode 100644 index 7b6187da88f..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/ignoreAnnotations.txt +++ /dev/null @@ -1,16 +0,0 @@ -package - -public fun main(/*0*/ a: A): kotlin.Unit - -public open class A { - public constructor A() - @org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String! - @org.jspecify.annotations.NotNull public open fun bar(): @org.jspecify.annotations.NotNull kotlin.String! - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @org.jspecify.annotations.DefaultNonNull public open fun everythingNotNullable(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNonNull kotlin.String! - @org.jspecify.annotations.DefaultNullable public open fun everythingNullable(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullable kotlin.String! - @org.jspecify.annotations.DefaultNullnessUnspecified public open fun everythingUnknown(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullnessUnspecified kotlin.String! - @org.jspecify.annotations.Nullable public open fun foo(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String!, /*1*/ @org.jspecify.annotations.NullnessUnspecified y: @org.jspecify.annotations.NullnessUnspecified kotlin.CharSequence!): @org.jspecify.annotations.Nullable kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/AnnotatedBoundsOfWildcard.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/AnnotatedBoundsOfWildcard.java new file mode 100644 index 00000000000..017794e12f5 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/AnnotatedBoundsOfWildcard.java @@ -0,0 +1,81 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class AnnotatedBoundsOfWildcard { + public void superAsIs(Test a) {} + public void superNotNull(Test a) {} + public void superNullable(Test a) {} + + public void extendsAsIs(Test a) {} + public void extendsNotNull(Test a) {} + public void extendsNullable(Test a) {} + + public void noBounds(Test<@NullnessUnspecified ?, @NullnessUnspecified ?, @NullnessUnspecified ?> a) {} +} + +class Base {} +class Derived extends Base {} + +@DefaultNonNull +class Test { } + +@DefaultNonNull +class Use { + public void main( + Test aNotNullNotNullNotNull, + Test aNotNullNotNullNull, + Test aNotNullNullNotNull, + Test aNotNullNullNull, + + Test aObjectNotNullNotNullNotNull, + Test aObjectNotNullNotNullNull, + Test aObjectNotNullNullNotNull, + Test aObjectNotNullNullNull, + + AnnotatedBoundsOfWildcard b + ) { + // jspecify_nullness_mismatch + b.superAsIs(aObjectNotNullNotNullNotNull); + // jspecify_nullness_mismatch + b.superAsIs(aObjectNotNullNotNullNull); + b.superAsIs(aObjectNotNullNullNotNull); + b.superAsIs(aObjectNotNullNullNull); + + b.superNotNull(aObjectNotNullNotNullNotNull); + b.superNotNull(aObjectNotNullNotNullNull); + b.superNotNull(aObjectNotNullNullNotNull); + b.superNotNull(aObjectNotNullNullNull); + + // jspecify_nullness_mismatch + b.superNullable(aObjectNotNullNotNullNotNull); + // jspecify_nullness_mismatch + b.superNullable(aObjectNotNullNotNullNull); + // jspecify_nullness_mismatch + b.superNullable(aObjectNotNullNullNotNull); + // jspecify_nullness_mismatch + b.superNullable(aObjectNotNullNullNull); + + b.extendsAsIs(aNotNullNotNullNotNull); + b.extendsAsIs(aNotNullNotNullNull); + b.extendsAsIs(aNotNullNullNotNull); + b.extendsAsIs(aNotNullNullNull); + + b.extendsNotNull(aNotNullNotNullNotNull); + // jspecify_nullness_mismatch + b.extendsNotNull(aNotNullNotNullNull); + // jspecify_nullness_mismatch + b.extendsNotNull(aNotNullNullNotNull); + // jspecify_nullness_mismatch + b.extendsNotNull(aNotNullNullNull); + + b.extendsNullable(aNotNullNotNullNotNull); + b.extendsNullable(aNotNullNotNullNull); + b.extendsNullable(aNotNullNullNotNull); + b.extendsNullable(aNotNullNullNull); + + b.noBounds(aNotNullNotNullNotNull); + b.noBounds(aNotNullNotNullNull); + b.noBounds(aNotNullNullNotNull); + b.noBounds(aNotNullNullNull); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Defaults.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Defaults.java new file mode 100644 index 00000000000..eedbd959483 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Defaults.java @@ -0,0 +1,44 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class Defaults { + public Foo defaultField = null; + @Nullable public Foo field = null; + + public Foo everythingNotNullable(Foo x) { return null; } + + public @Nullable Foo everythingNullable(@Nullable Foo x) { return null; } + + public @NullnessUnspecified Foo everythingUnknown(@NullnessUnspecified Foo x) { return null; } + + public @Nullable Foo mixed(Foo x) { return null; } + + public Foo explicitlyNullnessUnspecified(@NullnessUnspecified Foo x) { return null; } +} + +class Foo { + public Object foo() { return null; } +} + +class Use { + static void main(Defaults a, Foo x) { + // jspecify_nullness_mismatch + a.everythingNotNullable(null).foo(); + a.everythingNotNullable(x).foo(); + + a.everythingNullable(null).foo(); + + a.everythingUnknown(null).foo(); + + // jspecify_nullness_mismatch + a.mixed(null).foo(); + a.mixed(x).foo(); + + a.explicitlyNullnessUnspecified(x).foo(); + a.explicitlyNullnessUnspecified(null).foo(); + + a.defaultField.foo(); + + a.field.foo(); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/IgnoreAnnotations.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/IgnoreAnnotations.java new file mode 100644 index 00000000000..03bd4d27611 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/IgnoreAnnotations.java @@ -0,0 +1,41 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class IgnoreAnnotations { + @Nullable public Derived field = null; + + @Nullable + public Derived foo(Derived x, @NullnessUnspecified Base y) { + return null; + } + + public Derived everythingNotNullable(Derived x) { return null; } + + public @Nullable Derived everythingNullable(@Nullable Derived x) { return null; } + + public @NullnessUnspecified Derived everythingUnknown(@NullnessUnspecified Derived x) { return null; } +} + +class Base { + void foo() {} +} + +class Derived extends Base { } + +class Use { + static void main(IgnoreAnnotations a, Derived x) { + a.foo(x, null).foo(); + // jspecify_nullness_mismatch + a.foo(null, x).foo(); + + a.field.foo(); + + // jspecify_nullness_mismatch + a.everythingNotNullable(null).foo(); + a.everythingNotNullable(x).foo(); + + a.everythingNullable(null).foo(); + + a.everythingUnknown(null).foo(); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NonPlatformTypeParameter.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NonPlatformTypeParameter.java new file mode 100644 index 00000000000..03367d3592b --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NonPlatformTypeParameter.java @@ -0,0 +1,26 @@ +import org.jspecify.annotations.*; + +public class NonPlatformTypeParameter { + public void foo(T t) {} + public void bar(E e) {} +} + +class Test {} + +@DefaultNonNull +class Use { + public void main(NonPlatformTypeParameter<@Nullable Object> a1, NonPlatformTypeParameter a2, T x) { + a1.foo(null); + a1.<@Nullable Test>bar(null); + // jspecify_nullness_mismatch + a1.bar(null); + a1.bar(x); + + // jspecify_nullness_mismatch + a2.foo(null); + a2.<@Nullable Test>bar(null); + // jspecify_nullness_mismatch + a2.bar(null); + a2.bar(x); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NullnessUnspecifiedTypeParameter.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NullnessUnspecifiedTypeParameter.java new file mode 100644 index 00000000000..db429c73e22 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/NullnessUnspecifiedTypeParameter.java @@ -0,0 +1,30 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class NullnessUnspecifiedTypeParameter { + public void foo(T t) {} + + public void bar(Test s, T t) {} // t should not become not nullable +} + +class Test {} + +class Use { + void main(NullnessUnspecifiedTypeParameter a1, NullnessUnspecifiedTypeParameter<@Nullable Object> a2, Test x) { + a1.foo(null); + a1.foo(1); + + a2.foo(null); + a2.foo(1); + + // jspecify_nullness_mismatch + a1.bar(null, null); + a1.bar(x, null); + a1.bar(x, 1); + + // jspecify_nullness_mismatch + a2.bar(null, null); + a2.bar(x, null); + a2.bar(x, 1); + } +} \ No newline at end of file diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/SelfType.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/SelfType.java new file mode 100644 index 00000000000..396c887430e --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/SelfType.java @@ -0,0 +1,40 @@ +import org.jspecify.annotations.*; + +@DefaultNotNull +public class SelfType> { + public void foo(T t) {} +} + +class B extends SelfType {} + +@DefaultNotNull +class C> extends SelfType {} + +class AK extends SelfType {} +class AKN extends SelfType<@Nullable AK> {} + +class BK extends B {} + +class CK extends C {} + +class CKN extends C<@Nullable CK> { + public void main(AK ak, AKN akn, BK bk, CK ck, CKN ckn) { + ak.foo(ak); + // jspecify_nullness_mismatch + ak.foo(null); + + // jspecify_nullness_mismatch + akn.foo(null); + + bk.foo(bk); + // jspecify_nullness_mismatch + bk.foo(null); + + ck.foo(ck); + // jspecify_nullness_mismatch + ck.foo(null); + + // jspecify_nullness_mismatch + ckn.foo(null); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Simple.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Simple.java new file mode 100644 index 00000000000..4b906cc1e78 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/Simple.java @@ -0,0 +1,33 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class Simple { + @Nullable public Derived field = null; + + @Nullable + public Derived foo(Derived x, @NullnessUnspecified Base y) { + return null; + } + + public Derived bar() { + return null; + } +} + +class Base {} +class Derived extends Base { + void foo() {} +} + +@DefaultNonNull +class Use { + static public void main(Simple a, Derived x) { + a.foo(x, null).foo(); + // jspecify_nullness_mismatch + a.foo(null, x).foo(); + + a.bar().foo(); + + a.field.foo(); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeArgumentsFromParameterBounds.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeArgumentsFromParameterBounds.java new file mode 100644 index 00000000000..60112a63b35 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeArgumentsFromParameterBounds.java @@ -0,0 +1,53 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class TypeArgumentsFromParameterBounds { } + +class A { + public void bar(TypeArgumentsFromParameterBounds<@Nullable Test, @Nullable Test, @Nullable Test> a) {} +} + +@DefaultNonNull +class B { + public void bar(TypeArgumentsFromParameterBounds a) {} +} + +class C { + public void bar(TypeArgumentsFromParameterBounds a) {} +} + +class Test {} + +@DefaultNonNull +class Use { + static public void main( + TypeArgumentsFromParameterBounds aNotNullNotNullNotNull, + TypeArgumentsFromParameterBounds aNotNullNotNullNull, + TypeArgumentsFromParameterBounds aNotNullNullNotNull, + TypeArgumentsFromParameterBounds aNotNullNullNull, + A a, B b, C c + ) { + // jspecify_nullness_mismatch + a.bar(aNotNullNotNullNotNull); + // jspecify_nullness_mismatch + a.bar(aNotNullNotNullNull); + // jspecify_nullness_mismatch + a.bar(aNotNullNullNotNull); + a.bar(aNotNullNullNull); + + b.bar(aNotNullNotNullNotNull); + // jspecify_nullness_mismatch + b.bar(aNotNullNotNullNull); + // jspecify_nullness_mismatch + b.bar(aNotNullNullNotNull); + // jspecify_nullness_mismatch + b.bar(aNotNullNullNull); + + // jspecify_nullness_mismatch + c.bar(aNotNullNotNullNotNull); + // jspecify_nullness_mismatch + c.bar(aNotNullNotNullNull); + c.bar(aNotNullNullNotNull); + c.bar(aNotNullNullNull); + } +} \ No newline at end of file diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeParameterBounds.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeParameterBounds.java new file mode 100644 index 00000000000..0b6f6f78e65 --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/TypeParameterBounds.java @@ -0,0 +1,44 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +class A { + public void foo(@NullnessUnspecified T t) {} + public void bar(E e) {} +} + +@DefaultNonNull +class B { + public void foo(T t) {} + public void bar(E e) {} +} + +class Test {} + +@DefaultNonNull +public class TypeParameterBounds { + void main(A<@Nullable Object> a1, A a2, B<@Nullable Object> b1, B b2, T x) { + // jspecify_nullness_mismatch + a1.foo(null); + // jspecify_nullness_mismatch + a1.<@Nullable T>bar(null); + a1.bar(x); + + // jspecify_nullness_mismatch + a2.foo(null); + // jspecify_nullness_mismatch + a2.<@Nullable T>bar(null); + a2.bar(x); + + // jspecify_nullness_mismatch + b1.foo(null); + // jspecify_nullness_mismatch + b1.<@Nullable T>bar(null); + b1.bar(x); + + // jspecify_nullness_mismatch + b2.foo(null); + // jspecify_nullness_mismatch + b2.<@Nullable T>bar(null); + b2.bar(x); + } +} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/WildcardsWithDefault.java b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/WildcardsWithDefault.java new file mode 100644 index 00000000000..757df9469cc --- /dev/null +++ b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/java/WildcardsWithDefault.java @@ -0,0 +1,33 @@ +import org.jspecify.annotations.*; + +@DefaultNonNull +public class WildcardsWithDefault { + public void noBoundsNotNull(A a) {} + public void noBoundsNullable(A<@Nullable ?, @Nullable ?, @Nullable ?> a) {} +} + +class A {} + +@DefaultNonNull +class Use { + public static void main( + A aNotNullNotNullNotNull, + A aNotNullNotNullNull, + A aNotNullNullNotNull, + A aNotNullNullNull, + WildcardsWithDefault b + ) { + // jspecify_nullness_mismatch + b.noBoundsNotNull(aNotNullNotNullNotNull); + b.noBoundsNotNull(aNotNullNotNullNull); + // jspecify_nullness_mismatch + b.noBoundsNotNull(aNotNullNullNotNull); + // jspecify_nullness_mismatch + b.noBoundsNotNull(aNotNullNullNull); + + b.noBoundsNullable(aNotNullNotNullNotNull); + b.noBoundsNullable(aNotNullNotNullNull); + b.noBoundsNullable(aNotNullNullNotNull); + b.noBoundsNullable(aNotNullNullNull); + } +} \ No newline at end of file diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.kt deleted file mode 100644 index fe8ea95df44..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.kt +++ /dev/null @@ -1,43 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNullable -public class B { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: main.kt - -fun main(a1: A, a2: A, b1: B, b2: B) { - a1.foo(null) - a1.bar(null) - a1.bar(null) - a1.bar("") - - a2.foo(null) - a2.bar(null) - a2.bar(null) - a2.bar("") - - b1.foo(null) - b1.bar(null) - b1.bar(null) - b1.bar("") - - b2.foo(null) - b2.bar(null) - b2.bar(null) - b2.bar("") -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.txt deleted file mode 100644 index d6c516a4c1b..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/nonPlatformTypeParameter.txt +++ /dev/null @@ -1,21 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A, /*2*/ b1: B, /*3*/ b2: B): kotlin.Unit - -public open class A { - public constructor A() - public open fun bar(/*0*/ e: E): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullable public open class B { - public constructor B() - public open fun bar(/*0*/ e: E): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/selfType.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/selfType.kt deleted file mode 100644 index eb5e0f1afec..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/selfType.kt +++ /dev/null @@ -1,48 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A> { - public void foo(T t) {} -} - -// FILE: B.java -public class B extends A {} - -// FILE: C.java -import org.jspecify.annotations.*; -public class C> extends A {} - -// FILE: main.kt - -class AK : A() -class AKN : A<AK?>() - -class BK : B() - -class CK : C() -class CKN : C<CK?>() - -fun main( - ak: AK, - akn: AKN, - bk: BK, - ck: CK, - ckn: CKN -) { - ak.foo(ak) - ak.foo(null) - - akn.foo(akn) - akn.foo(null) - - bk.foo(bk) - bk.foo(null) - - ck.foo(ck) - ck.foo(null) - - ckn.foo(ckn) - ckn.foo(null) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.kt deleted file mode 100644 index 362671f638f..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.kt +++ /dev/null @@ -1,33 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - @Nullable public String field = null; - - @Nullable - public String foo(@NotNull String x, @NullnessUnspecified CharSequence y) { - return ""; - } - - @NotNull - public String bar() { - return ""; - } - -} - -// FILE: main.kt - -fun main(a: A) { - a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length - - a.bar().length - a.bar()!!.length - - a.field?.length - a.field.length -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.txt deleted file mode 100644 index 54550245d33..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/simple.txt +++ /dev/null @@ -1,13 +0,0 @@ -package - -public fun main(/*0*/ a: A): kotlin.Unit - -public open class A { - public constructor A() - @org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String? - @org.jspecify.annotations.NotNull public open fun bar(): @org.jspecify.annotations.NotNull kotlin.String - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @org.jspecify.annotations.Nullable public open fun foo(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String, /*1*/ @org.jspecify.annotations.NullnessUnspecified y: @org.jspecify.annotations.NullnessUnspecified kotlin.CharSequence!): @org.jspecify.annotations.Nullable kotlin.String? - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.kt deleted file mode 100644 index db2949195c1..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.kt +++ /dev/null @@ -1,59 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNullable -public class B { - public void bar(A a) {} -} - -// FILE: C.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class C { - public void bar(A a) {} -} - -// FILE: D.java - -import org.jspecify.annotations.*; - -@DefaultNullnessUnspecified -public class D { - public void bar(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - b: B, c: C, d: D -) { - b.bar(aNotNullNotNullNotNull) - b.bar(aNotNullNotNullNull) - b.bar(aNotNullNullNotNull) - b.bar(aNotNullNullNull) - - c.bar(aNotNullNotNullNotNull) - c.bar(aNotNullNotNullNull) - c.bar(aNotNullNullNotNull) - c.bar(aNotNullNullNull) - - d.bar(aNotNullNotNullNotNull) - d.bar(aNotNullNotNullNull) - d.bar(aNotNullNullNotNull) - d.bar(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.txt deleted file mode 100644 index 7cf40b21642..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeArgumentsFromParameterBounds.txt +++ /dev/null @@ -1,34 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ b: B, /*5*/ c: C, /*6*/ d: D): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullable public open class B { - public constructor B() - public open fun bar(/*0*/ a: A?): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNonNull public open class C { - public constructor C() - public open fun bar(/*0*/ a: A): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullnessUnspecified public open class D { - public constructor D() - public open fun bar(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.kt deleted file mode 100644 index 06efc43f383..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.kt +++ /dev/null @@ -1,39 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class B { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: main.kt - -fun main(a1: A<Any?>, a2: A, b1: B<Any?>, b2: B) { - a1.foo(null) - a1.bar<String?>(null) - a1.bar("") - - a2.foo(null) - a2.bar<String?>(null) - a2.bar("") - - b1.foo(null) - b1.bar<String?>(null) - b1.bar("") - - b2.foo(null) - b2.bar<String?>(null) - b2.bar("") -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.txt deleted file mode 100644 index 10d2abf0375..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/typeParameterBounds.txt +++ /dev/null @@ -1,21 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A, /*2*/ b1: B, /*3*/ b2: B): kotlin.Unit - -public open class A { - public constructor A() - public open fun bar(/*0*/ e: E): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNonNull public open class B { - public constructor B() - public open fun bar(/*0*/ e: E): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.kt deleted file mode 100644 index c0ab5f3952f..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.kt +++ /dev/null @@ -1,29 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - - @DefaultNonNull - public void bar(String s, T t) {} // t should not become not nullable -} - -// FILE: main.kt - -fun main(a1: A, a2: A) { - a1.foo(null) - a1.foo(1) - - a2.foo(null) - a2.foo(1) - - a1.bar(null, null) - a1.bar("", null) - a1.bar("", 1) - - a2.bar(null, null) - a2.bar("", null) - a2.bar("", 1) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.txt deleted file mode 100644 index bc77034ed4c..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/unknownNullnessTypeParameter.txt +++ /dev/null @@ -1,12 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A): kotlin.Unit - -public open class A { - public constructor A() - @org.jspecify.annotations.DefaultNonNull public open fun bar(/*0*/ s: kotlin.String, /*1*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.kt deleted file mode 100644 index 4cb8e4199ed..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.kt +++ /dev/null @@ -1,81 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -public class B { - public void superAsIs(A a) {} - public void superNotNull(A a) {} - public void superNullable(A a) {} - - public void extendsAsIs(A a) {} - public void extendsNotNull(A a) {} - public void extendsNullable(A a) {} - - public void noBounds(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - - aAnyNotNullNotNullNotNull: A, - aAnyNotNullNotNullNull: A, - aAnyNotNullNullNotNull: A, - aAnyNotNullNullNull: A, - b: B -) { - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.superAsIs(aAnyNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.superAsIs(aAnyNotNullNotNullNull) - b.superAsIs(aAnyNotNullNullNotNull) - b.superAsIs(aAnyNotNullNullNull) - - b.superNotNull(aAnyNotNullNotNullNotNull) - b.superNotNull(aAnyNotNullNotNullNull) - b.superNotNull(aAnyNotNullNullNotNull) - b.superNotNull(aAnyNotNullNullNull) - - // TODO: Bound for the first argument in "superNullable" contradicts to declared nullability of the parameter - // Do we need to ignore such arguments' nullability? - b.superNullable(aAnyNotNullNotNullNotNull) - b.superNullable(aAnyNotNullNotNullNull) - b.superNullable(aAnyNotNullNullNotNull) - b.superNullable(aAnyNotNullNullNull) - - b.extendsAsIs(aNotNullNotNullNotNull) - b.extendsAsIs(aNotNullNotNullNull) - b.extendsAsIs(aNotNullNullNotNull) - b.extendsAsIs(aNotNullNullNull) - - b.extendsNotNull(aNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.extendsNotNull(aNotNullNotNullNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.extendsNotNull(aNotNullNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.extendsNotNull(aNotNullNullNull) - - b.extendsNullable(aNotNullNotNullNotNull) - b.extendsNullable(aNotNullNotNullNull) - b.extendsNullable(aNotNullNullNotNull) - b.extendsNullable(aNotNullNullNull) - - b.noBounds(aNotNullNotNullNotNull) - b.noBounds(aNotNullNotNullNull) - b.noBounds(aNotNullNullNotNull) - b.noBounds(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.txt deleted file mode 100644 index a8275c2f438..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/annotatedWildcards.txt +++ /dev/null @@ -1,24 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ aAnyNotNullNotNullNotNull: A, /*5*/ aAnyNotNullNotNullNull: A, /*6*/ aAnyNotNullNullNotNull: A, /*7*/ aAnyNotNullNullNull: A, /*8*/ b: B): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -public open class B { - public constructor B() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun extendsAsIs(/*0*/ a: A!): kotlin.Unit - public open fun extendsNotNull(/*0*/ a: A!): kotlin.Unit - public open fun extendsNullable(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open fun noBounds(/*0*/ a: A<*, *, *>!): kotlin.Unit - public open fun superAsIs(/*0*/ a: A!): kotlin.Unit - public open fun superNotNull(/*0*/ a: A!): kotlin.Unit - public open fun superNullable(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.kt deleted file mode 100644 index 1f7a5b64136..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.kt +++ /dev/null @@ -1,52 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class A { - public String defaultField = ""; - @Nullable public String field = null; - - public String everythingNotNullable(String x) { return ""; } - - @DefaultNullable - public String everythingNullable(String x) { return ""; } - - @DefaultNullnessUnspecified - public String everythingUnknown(String x) { return ""; } - - @DefaultNullable - public String mixed(@NotNull String x) { return ""; } - - public String explicitlyNullnessUnspecified(@NullnessUnspecified String x) { return ""; } -} - -// FILE: main.kt - -fun main(a: A) { - a.everythingNotNullable(null)?.length - a.everythingNotNullable(null).length - a.everythingNotNullable("").length - - a.everythingNullable(null).length - a.everythingNullable(null)?.length - - a.everythingUnknown(null).length - a.everythingUnknown(null)?.length - - a.mixed(null).length - a.mixed(null)?.length - a.mixed("")?.length - - a.explicitlyNullnessUnspecified("").length - a.explicitlyNullnessUnspecified("")?.length - a.explicitlyNullnessUnspecified(null).length - - a.defaultField?.length - a.defaultField.length - - a.field?.length - a.field.length -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.txt deleted file mode 100644 index 78cb9129551..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/defaults.txt +++ /dev/null @@ -1,17 +0,0 @@ -package - -public fun main(/*0*/ a: A): kotlin.Unit - -@org.jspecify.annotations.DefaultNonNull public open class A { - public constructor A() - public final var defaultField: kotlin.String! - @org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String! - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun everythingNotNullable(/*0*/ x: kotlin.String!): kotlin.String! - @org.jspecify.annotations.DefaultNullable public open fun everythingNullable(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullable kotlin.String! - @org.jspecify.annotations.DefaultNullnessUnspecified public open fun everythingUnknown(/*0*/ x: kotlin.String!): @org.jspecify.annotations.DefaultNullnessUnspecified kotlin.String! - public open fun explicitlyNullnessUnspecified(/*0*/ @org.jspecify.annotations.NullnessUnspecified x: @org.jspecify.annotations.NullnessUnspecified kotlin.String!): kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - @org.jspecify.annotations.DefaultNullable public open fun mixed(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String!): @org.jspecify.annotations.DefaultNullable kotlin.String! - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.kt deleted file mode 100644 index f1bd077c105..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.kt +++ /dev/null @@ -1,50 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNullable -public class B { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: main.kt - -fun main(a1: A, a2: A, b1: B, b2: B) { - a1.foo(null) - a1.bar(null) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - a1.bar(null) - a1.bar("") - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - a2.foo(null) - a2.bar(null) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - a2.bar(null) - a2.bar("") - - b1.foo(null) - b1.bar(null) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b1.bar(null) - b1.bar("") - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b2.foo(null) - b2.bar(null) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b2.bar(null) - b2.bar("") -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.txt deleted file mode 100644 index edcb601d7e5..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/nonPlatformTypeParameter.txt +++ /dev/null @@ -1,21 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A, /*2*/ b1: B, /*3*/ b2: B): kotlin.Unit - -public open class A { - public constructor A() - public open fun bar(/*0*/ e: E!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullable public open class B { - public constructor B() - public open fun bar(/*0*/ e: E!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.kt deleted file mode 100644 index ba06ae398a8..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.kt +++ /dev/null @@ -1,34 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - @Nullable public String field = null; - - @Nullable - public String foo(@NotNull String x, @NullnessUnspecified CharSequence y) { - return ""; - } - - @NotNull - public String bar() { - return ""; - } - -} - -// FILE: main.kt - -fun main(a: A) { - a.foo("", null)?.length - a.foo("", null).length - a.foo(null, "").length - - a.bar().length - a.bar()!!.length - - a.field?.length - a.field.length -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.txt deleted file mode 100644 index 6a6145002ee..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/simple.txt +++ /dev/null @@ -1,13 +0,0 @@ -package - -public fun main(/*0*/ a: A): kotlin.Unit - -public open class A { - public constructor A() - @org.jspecify.annotations.Nullable public final var field: @org.jspecify.annotations.Nullable kotlin.String! - @org.jspecify.annotations.NotNull public open fun bar(): @org.jspecify.annotations.NotNull kotlin.String! - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - @org.jspecify.annotations.Nullable public open fun foo(/*0*/ @org.jspecify.annotations.NotNull x: @org.jspecify.annotations.NotNull kotlin.String!, /*1*/ @org.jspecify.annotations.NullnessUnspecified y: @org.jspecify.annotations.NullnessUnspecified kotlin.CharSequence!): @org.jspecify.annotations.Nullable kotlin.String! - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.kt deleted file mode 100644 index bd0fec11eb7..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.kt +++ /dev/null @@ -1,68 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNullable -public class B { - public void bar(A a) {} -} - -// FILE: C.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class C { - public void bar(A a) {} -} - -// FILE: D.java - -import org.jspecify.annotations.*; - -@DefaultNullnessUnspecified -public class D { - public void bar(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - b: B, c: C, d: D -) { - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.bar(aNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.bar(aNotNullNotNullNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.bar(aNotNullNullNotNull) - b.bar(aNotNullNullNull) - - c.bar(aNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - c.bar(aNotNullNotNullNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - c.bar(aNotNullNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - c.bar(aNotNullNullNull) - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - d.bar(aNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - d.bar(aNotNullNotNullNull) - d.bar(aNotNullNullNotNull) - d.bar(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.txt deleted file mode 100644 index 9dd3fd88101..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeArgumentsFromParameterBounds.txt +++ /dev/null @@ -1,34 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ b: B, /*5*/ c: C, /*6*/ d: D): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullable public open class B { - public constructor B() - public open fun bar(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNonNull public open class C { - public constructor C() - public open fun bar(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNullnessUnspecified public open class D { - public constructor D() - public open fun bar(/*0*/ a: A!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.kt deleted file mode 100644 index 64ad9e6639d..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.kt +++ /dev/null @@ -1,49 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -@DefaultNonNull -public class B { - public void foo(T t) {} - public void bar(E e) {} -} - -// FILE: main.kt - -// TODO: UPPER_BOUND_VIOLATED_WARNING should be reported -fun main(a1: A, a2: A, b1: B, b2: B) { - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - a1.foo(null) - // TODO: UPPER_BOUND_VIOLATED_WARNING should be reported - a1.bar(null) - a1.bar("") - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - a2.foo(null) - // TODO: UPPER_BOUND_VIOLATED_WARNING should be reported - a2.bar(null) - a2.bar("") - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b1.foo(null) - // TODO: UPPER_BOUND_VIOLATED_WARNING should be reported - b1.bar(null) - b1.bar("") - - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b2.foo(null) - // TODO: UPPER_BOUND_VIOLATED_WARNING should be reported - b2.bar(null) - b2.bar("") -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.txt deleted file mode 100644 index e697f8356e3..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/typeParameterBounds.txt +++ /dev/null @@ -1,21 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A, /*2*/ b1: B, /*3*/ b2: B): kotlin.Unit - -public open class A { - public constructor A() - public open fun bar(/*0*/ e: E!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -@org.jspecify.annotations.DefaultNonNull public open class B { - public constructor B() - public open fun bar(/*0*/ e: E!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.kt deleted file mode 100644 index a9985354f47..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.kt +++ /dev/null @@ -1,30 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { - public void foo(T t) {} - - @DefaultNonNull - public void bar(String s, T t) {} // t should not become not nullable -} - -// FILE: main.kt - -fun main(a1: A, a2: A) { - a1.foo(null) - a1.foo(1) - - a2.foo(null) - a2.foo(1) - - a1.bar(null, null) - a1.bar("", null) - a1.bar("", 1) - - a2.bar(null, null) - a2.bar("", null) - a2.bar("", 1) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.txt deleted file mode 100644 index 89e71a05c40..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/unknownNullnessTypeParameter.txt +++ /dev/null @@ -1,12 +0,0 @@ -package - -public fun main(/*0*/ a1: A, /*1*/ a2: A): kotlin.Unit - -public open class A { - public constructor A() - @org.jspecify.annotations.DefaultNonNull public open fun bar(/*0*/ s: kotlin.String!, /*1*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open fun foo(/*0*/ t: T!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.kt deleted file mode 100644 index 7dd94cb1796..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.kt +++ /dev/null @@ -1,42 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// JSPECIFY_STATE warn -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -public class B { - @DefaultNonNull - public void noBoundsNotNull(A a) {} - @DefaultNullable - public void noBoundsNullable(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - b: B -) { - b.noBoundsNotNull(aNotNullNotNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.noBoundsNotNull(aNotNullNotNullNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.noBoundsNotNull(aNotNullNullNotNull) - // TODO: NULLABILITY_MISMATCH_BASED_ON_JAVA_ANNOTATIONS should be reported - b.noBoundsNotNull(aNotNullNullNull) - - b.noBoundsNullable(aNotNullNotNullNotNull) - b.noBoundsNullable(aNotNullNotNullNull) - b.noBoundsNullable(aNotNullNullNotNull) - b.noBoundsNullable(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.txt deleted file mode 100644 index d8eab98439d..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/warnings/wildcardsWithDefault.txt +++ /dev/null @@ -1,19 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ b: B): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -public open class B { - public constructor B() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - @org.jspecify.annotations.DefaultNonNull public open fun noBoundsNotNull(/*0*/ a: A<*, *, *>!): kotlin.Unit - @org.jspecify.annotations.DefaultNullable public open fun noBoundsNullable(/*0*/ a: A<*, *, *>!): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.kt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.kt deleted file mode 100644 index 4b8fa530958..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.kt +++ /dev/null @@ -1,38 +0,0 @@ -// !DIAGNOSTICS: -UNUSED_VARIABLE -UNUSED_PARAMETER -// FILE: A.java - -import org.jspecify.annotations.*; - -public class A { -} - -// FILE: B.java - -import org.jspecify.annotations.*; - -public class B { - @DefaultNonNull - public void noBoundsNotNull(A a) {} - @DefaultNullable - public void noBoundsNullable(A a) {} -} - -// FILE: main.kt - -fun main( - aNotNullNotNullNotNull: A, - aNotNullNotNullNull: A, - aNotNullNullNotNull: A, - aNotNullNullNull: A, - b: B -) { - b.noBoundsNotNull(aNotNullNotNullNotNull) - b.noBoundsNotNull(aNotNullNotNullNull) - b.noBoundsNotNull(aNotNullNullNotNull) - b.noBoundsNotNull(aNotNullNullNull) - - b.noBoundsNullable(aNotNullNotNullNotNull) - b.noBoundsNullable(aNotNullNotNullNull) - b.noBoundsNullable(aNotNullNullNotNull) - b.noBoundsNullable(aNotNullNullNull) -} diff --git a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.txt b/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.txt deleted file mode 100644 index 770c6e11772..00000000000 --- a/compiler/testData/foreignAnnotationsJava8/tests/jspecify/wildcardsWithDefault.txt +++ /dev/null @@ -1,19 +0,0 @@ -package - -public fun main(/*0*/ aNotNullNotNullNotNull: A, /*1*/ aNotNullNotNullNull: A, /*2*/ aNotNullNullNotNull: A, /*3*/ aNotNullNullNull: A, /*4*/ b: B): kotlin.Unit - -public open class A { - public constructor A() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -} - -public open class B { - public constructor B() - public open override /*1*/ /*fake_override*/ fun equals(/*0*/ other: kotlin.Any?): kotlin.Boolean - public open override /*1*/ /*fake_override*/ fun hashCode(): kotlin.Int - @org.jspecify.annotations.DefaultNonNull public open fun noBoundsNotNull(/*0*/ a: A): kotlin.Unit - @org.jspecify.annotations.DefaultNullable public open fun noBoundsNullable(/*0*/ a: A?): kotlin.Unit - public open override /*1*/ /*fake_override*/ fun toString(): kotlin.String -}