1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
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 BasicSafeDefaultsTest {
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();
}
}
|