[java-analysis] Fixes in NullableNotNullManager (IJ-CR-4616)

1. NotNull/Nullity annotations
2. Indentation
3. Javadocs
4. findNullityDefaultFiltered extracted

GitOrigin-RevId: 73d666ba4e765e3312b99f1f65428023bbf0fc19
This commit is contained in:
Tagir Valeev
2020-12-16 12:37:52 +07:00
committed by intellij-monorepo-bot
parent dbac726dc7
commit 6178d87978
4 changed files with 17 additions and 14 deletions

View File

@@ -582,10 +582,10 @@ public class NullableStuffInspectionBase extends AbstractBaseJavaLocalInspection
}
/**
* @return if owner has a @NotNull or @Nullable annotation,
* @return true if owner has a @NotNull or @Nullable annotation,
* or is in scope of @ParametersAreNullableByDefault or ParametersAreNonnullByDefault
*/
private static boolean hasNullability(NullableNotNullManager manager, @NotNull PsiModifierListOwner owner) {
private static boolean hasNullability(@NotNull NullableNotNullManager manager, @NotNull PsiModifierListOwner owner) {
NullabilityAnnotationInfo info = manager.findEffectiveNullabilityInfo(owner);
return info != null && info.getNullability() != Nullability.UNKNOWN && info.getInheritedFrom() == null;
}

View File

@@ -233,9 +233,9 @@ public class AnnotationUtil {
}
@Nullable
static AnnotationAndOwner findAnnotationAndOwnerInHierarchy(@NotNull final PsiModifierListOwner listOwner,
@NotNull Set<String> annotationNames,
boolean skipExternal) {
static AnnotationAndOwner findAnnotationAndOwnerInHierarchy(@NotNull PsiModifierListOwner listOwner,
@NotNull Set<String> annotationNames,
boolean skipExternal) {
PsiAnnotation directAnnotation = findAnnotation(listOwner, annotationNames, skipExternal);
if (directAnnotation != null) return new AnnotationAndOwner(listOwner, directAnnotation);

View File

@@ -73,7 +73,7 @@ public class NullabilityAnnotationInfo {
return myInheritedFrom;
}
NullabilityAnnotationInfo withInheritedFrom(PsiModifierListOwner owner) {
@NotNull NullabilityAnnotationInfo withInheritedFrom(@Nullable PsiModifierListOwner owner) {
return new NullabilityAnnotationInfo(myAnnotation, myNullability, owner, myContainer);
}

View File

@@ -198,10 +198,8 @@ public abstract class NullableNotNullManager {
if (!lambdaParameter) {
// For lambda parameter, inherited annotation overrides the default one
NullabilityAnnotationInfo defaultInfo = findNullityDefaultInHierarchy(owner);
if (defaultInfo != null && (defaultInfo.getNullability() == Nullability.NULLABLE || !hasHardcodedContracts(owner))) {
return defaultInfo;
}
NullabilityAnnotationInfo defaultInfo = findNullityDefaultFiltered(owner);
if (defaultInfo != null) return defaultInfo;
}
if (owner instanceof PsiParameter) {
@@ -221,10 +219,15 @@ public abstract class NullableNotNullManager {
}
if (lambdaParameter) {
NullabilityAnnotationInfo defaultInfo = findNullityDefaultInHierarchy(owner);
if (defaultInfo != null && (defaultInfo.getNullability() == Nullability.NULLABLE || !hasHardcodedContracts(owner))) {
return defaultInfo;
}
return findNullityDefaultFiltered(owner);
}
return null;
}
private @Nullable NullabilityAnnotationInfo findNullityDefaultFiltered(@NotNull PsiModifierListOwner owner) {
NullabilityAnnotationInfo defaultInfo = findNullityDefaultInHierarchy(owner);
if (defaultInfo != null && (defaultInfo.getNullability() == Nullability.NULLABLE || !hasHardcodedContracts(owner))) {
return defaultInfo;
}
return null;
}