import org.checkerframework.checker.nullness.qual.*; import org.checkerframework.framework.qual.AnnotatedFor; // Tests that lack of @AnnotatedFor suppresses warnings, when // -AuseDefaultsForUnCheckedCode=source is supplied. @AnnotatedFor("nullness") class BasicTest { void m1() { @NonNull Object x1 = SdfuscLib.unannotated(); //:: error: (assignment.type.incompatible) @NonNull Object x2 = SdfuscLib.returnsNullable(); @NonNull Object x3 = SdfuscLib.returnsNonNull(); //:: error: (assignment.type.incompatible) @NonNull Object x4 = SdfuscLibNotAnnotatedFor.unannotated(); //:: error: (assignment.type.incompatible) @NonNull Object x5 = SdfuscLibNotAnnotatedFor.returnsNullable(); @NonNull Object x6 = SdfuscLibNotAnnotatedFor.returnsNonNull(); } void m2() { @Nullable Object x1 = SdfuscLib.unannotated(); @Nullable Object x2 = SdfuscLib.returnsNullable(); @Nullable Object x3 = SdfuscLib.returnsNonNull(); @Nullable Object x4 = SdfuscLibNotAnnotatedFor.unannotated(); @Nullable Object x5 = SdfuscLibNotAnnotatedFor.returnsNullable(); @Nullable Object x6 = SdfuscLibNotAnnotatedFor.returnsNonNull(); } } class BasicTestNotAnnotatedFor { void m1() { @NonNull Object x1 = SdfuscLib.unannotated(); @NonNull Object x2 = SdfuscLib.returnsNullable(); @NonNull Object x3 = SdfuscLib.returnsNonNull(); @NonNull Object x4 = SdfuscLibNotAnnotatedFor.unannotated(); @NonNull Object x5 = SdfuscLibNotAnnotatedFor.returnsNullable(); @NonNull Object x6 = SdfuscLibNotAnnotatedFor.returnsNonNull(); } void m2() { @Nullable Object x1 = SdfuscLib.unannotated(); @Nullable Object x2 = SdfuscLib.returnsNullable(); @Nullable Object x3 = SdfuscLib.returnsNonNull(); @Nullable Object x4 = SdfuscLibNotAnnotatedFor.unannotated(); @Nullable Object x5 = SdfuscLibNotAnnotatedFor.returnsNullable(); @Nullable Object x6 = SdfuscLibNotAnnotatedFor.returnsNonNull(); } }