Files
openide/java/java-tests/testData/inspection/dataFlow/fixture/CheckerDefaultQualifier.java
T
Tagir Valeevandintellij-monorepo-bot fb66fb758a [java-analysis] Prefer nullity from contract over nullity from default type annotation
Under @DefaultQualifier, all simple type instances are assumed to be notnull. Type of argument for Object obj = Objects.requireNonNull(xyz) is inferred to be `Object` type mention. As a result, it's believed to be notnull.

While we are not fixing the issue in general, in this particular case, we can disable type-based nullability, as we know requireNonNull contract

Fixes IDEA-303382 Incorrect inspection for requireNonNull with DefaultQualifier annotation

GitOrigin-RevId: fa010ac638be4a78b9464c1a6faa4d4d7f08ec34
2022-12-10 11:46:54 +00:00

18 lines
490 B
Java

import java.util.Objects;
import java.util.concurrent.ThreadLocalRandom;
import org.checkerframework.checker.nullness.qual.NonNull;
import org.checkerframework.checker.nullness.qual.Nullable;
import org.checkerframework.framework.qual.DefaultQualifier;
@DefaultQualifier(NonNull.class)
class Temp {
void run() {
Object obj = Objects.requireNonNull(maybeNull());
}
@Nullable Object maybeNull() {
return ThreadLocalRandom.current().nextBoolean() ? null : new Object();
}
}