[java-analysis] NullableNotNullManager: remove deprecated and unused methods

GitOrigin-RevId: eaad92b7ab9a4908a9591f46747f75ad27eb9f1d
This commit is contained in:
Tagir Valeev
2023-07-25 16:57:37 +02:00
committed by intellij-monorepo-bot
parent ae07e6def7
commit f46f96d05f
2 changed files with 21 additions and 50 deletions

View File

@@ -6,7 +6,10 @@ import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.Ref;
import com.intellij.psi.*;
import com.intellij.psi.util.*;
import org.jetbrains.annotations.*;
import org.jetbrains.annotations.Contract;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import org.jetbrains.annotations.Unmodifiable;
import java.util.Collection;
import java.util.List;
@@ -53,40 +56,14 @@ public abstract class NullableNotNullManager {
public abstract @NotNull String getDefaultNullable();
/**
* Returns an annotation which marks given element as Nullable, if any.
* @deprecated use {@link #findEffectiveNullabilityInfo(PsiModifierListOwner)} instead.
*/
@ApiStatus.ScheduledForRemoval
@Deprecated
public @Nullable PsiAnnotation getNullableAnnotation(@NotNull PsiModifierListOwner owner, boolean checkBases) {
NullabilityAnnotationInfo info = findEffectiveNullabilityInfo(owner);
if (info == null || info.getNullability() != Nullability.NULLABLE) return null;
if (!checkBases && info.getInheritedFrom() != null) return null;
return info.getAnnotation();
}
public abstract void setDefaultNullable(@NotNull String defaultNullable);
public abstract @NotNull String getDefaultNotNull();
/**
* Returns an annotation which marks given element as NotNull, if any.
* @deprecated use {@link #findEffectiveNullabilityInfo(PsiModifierListOwner)} instead.
*/
@ApiStatus.ScheduledForRemoval
@Deprecated
public @Nullable PsiAnnotation getNotNullAnnotation(@NotNull PsiModifierListOwner owner, boolean checkBases) {
NullabilityAnnotationInfo info = findEffectiveNullabilityInfo(owner);
if (info == null || info.getNullability() != Nullability.NOT_NULL) return null;
if (!checkBases && info.getInheritedFrom() != null) return null;
return info.getAnnotation();
}
public @Nullable PsiAnnotation copyNotNullAnnotation(@NotNull PsiModifierListOwner original, @NotNull PsiModifierListOwner generated) {
public void copyNotNullAnnotation(@NotNull PsiModifierListOwner original, @NotNull PsiModifierListOwner generated) {
NullabilityAnnotationInfo info = findOwnNullabilityInfo(original);
if (info == null || info.getNullability() != Nullability.NOT_NULL) return null;
return copyAnnotation(info.getAnnotation(), generated);
if (info == null || info.getNullability() != Nullability.NOT_NULL) return;
copyAnnotation(info.getAnnotation(), generated);
}
public @Nullable PsiAnnotation copyNullableAnnotation(@NotNull PsiModifierListOwner original, @NotNull PsiModifierListOwner generated) {
@@ -281,14 +258,6 @@ public abstract class NullableNotNullManager {
return nullability;
}
private static boolean areDifferentNullityAnnotations(@NotNull PsiAnnotation memberAnno, @NotNull PsiAnnotation typeAnno) {
NullableNotNullManager manager = getInstance(memberAnno.getProject());
List<String> notNulls = manager.getNotNullsWithNickNames();
List<String> nullables = manager.getNullablesWithNickNames();
return nullables.contains(typeAnno.getQualifiedName()) && notNulls.contains(memberAnno.getQualifiedName()) ||
nullables.contains(memberAnno.getQualifiedName()) && notNulls.contains(typeAnno.getQualifiedName());
}
protected @NotNull List<String> getNullablesWithNickNames() {
return getNullables();
}

View File

@@ -2,6 +2,7 @@
package org.jetbrains.kotlin.idea.refactoring.changeSignature
import com.intellij.codeInsight.Nullability
import com.intellij.codeInsight.NullableNotNullManager
import com.intellij.openapi.project.Project
import com.intellij.openapi.util.Ref
@@ -26,7 +27,6 @@ import org.jetbrains.kotlin.asJava.unwrapped
import org.jetbrains.kotlin.descriptors.*
import org.jetbrains.kotlin.idea.base.projectStructure.forcedModuleInfo
import org.jetbrains.kotlin.idea.base.projectStructure.moduleInfo
import org.jetbrains.kotlin.util.match
import org.jetbrains.kotlin.idea.base.resources.KotlinBundle
import org.jetbrains.kotlin.idea.base.util.useScope
import org.jetbrains.kotlin.idea.caches.resolve.*
@@ -50,7 +50,10 @@ import org.jetbrains.kotlin.idea.util.getReceiverTargetDescriptor
import org.jetbrains.kotlin.kdoc.psi.impl.KDocName
import org.jetbrains.kotlin.load.java.descriptors.JavaClassDescriptor
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.*
import org.jetbrains.kotlin.psi.psiUtil.getNonStrictParentOfType
import org.jetbrains.kotlin.psi.psiUtil.getParentOfTypeAndBranch
import org.jetbrains.kotlin.psi.psiUtil.getValueParameters
import org.jetbrains.kotlin.psi.psiUtil.parents
import org.jetbrains.kotlin.resolve.BindingContext
import org.jetbrains.kotlin.resolve.DescriptorUtils
import org.jetbrains.kotlin.resolve.calls.tasks.ExplicitReceiverKind
@@ -60,6 +63,7 @@ import org.jetbrains.kotlin.resolve.scopes.receivers.ExtensionReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ImplicitReceiver
import org.jetbrains.kotlin.resolve.scopes.receivers.ReceiverValue
import org.jetbrains.kotlin.util.OperatorNameConventions
import org.jetbrains.kotlin.util.match
import org.jetbrains.kotlin.utils.addIfNotNull
import org.jetbrains.kotlin.utils.addToStdlib.firstIsInstanceOrNull
@@ -583,23 +587,21 @@ class KotlinChangeSignatureUsageProcessor : ChangeSignatureUsageProcessor {
}
private fun getNullabilityAnnotation(element: PsiModifierListOwner): PsiAnnotation? {
val nullAnnotation = nullManager.getNullableAnnotation(element, false)
val notNullAnnotation = nullManager.getNotNullAnnotation(element, false)
if ((nullAnnotation == null) == (notNullAnnotation == null)) return null
return nullAnnotation ?: notNullAnnotation
val info = nullManager.findEffectiveNullabilityInfo(element) ?: return null
if (info.inheritedFrom != null || info.isContainer) return null
return info.annotation
}
private fun addNullabilityAnnotationIfApplicable(element: PsiModifierListOwner, annotation: PsiAnnotation?) {
val nullableAnnotation = nullManager.getNullableAnnotation(element, false)
val notNullAnnotation = nullManager.getNotNullAnnotation(element, false)
if (notNullAnnotation != null && nullableAnnotation == null && element is PsiMethod) return
val info = nullManager.findEffectiveNullabilityInfo(element)
if (info != null && info.nullability == Nullability.NOT_NULL && info.inheritedFrom == null && element is PsiMethod) return
val annotationQualifiedName = annotation?.qualifiedName
if (annotationQualifiedName != null && javaPsiFacade.findClass(annotationQualifiedName, element.resolveScope) == null) return
notNullAnnotation?.delete()
nullableAnnotation?.delete()
if (info != null && !info.isContainer && info.inheritedFrom == null) {
info.annotation.delete()
}
if (annotationQualifiedName == null) return