removed unnecessary startElement.isValid() checks from overriders because LocalQuickFixOnPsiElement.isAvailable() is guaranteed to be called with valid elements

This commit is contained in:
Alexey Kudravtsev
2017-11-27 14:31:55 +03:00
parent d48dd4d41b
commit f32b1c91d7
20 changed files with 17 additions and 32 deletions
@@ -59,7 +59,6 @@ public class AddTypeCastFix extends LocalQuickFixAndIntentionActionOnPsiElement
@NotNull PsiElement endElement) {
return myType.isValid() &&
PsiTypesUtil.isDenotableType(myType) &&
startElement.isValid() &&
startElement.getManager().isInProject(startElement);
}
@@ -85,8 +85,7 @@ public class ExtendsListFix extends LocalQuickFixAndIntentionActionOnPsiElement
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
return
myClass.isValid()
&& myClass.getManager().isInProject(myClass)
myClass.getManager().isInProject(myClass)
&& myClassToExtendFrom != null
&& myClassToExtendFrom.isValid()
&& !myClassToExtendFrom.hasModifierProperty(PsiModifier.FINAL)
@@ -158,8 +158,7 @@ public class VariableArrayTypeFix extends LocalQuickFixOnPsiElement {
return myVariable != null
&& myVariable.isValid()
&& myVariable.getManager().isInProject(myVariable)
&& myTargetType.isValid()
&& myInitializer.isValid();
&& myTargetType.isValid();
}
@Override
@@ -21,7 +21,6 @@ import com.intellij.codeInsight.intention.IntentionAction;
import com.intellij.codeInspection.LocalQuickFixAndIntentionActionOnPsiElement;
import com.intellij.codeInspection.dataFlow.DfaPsiUtil;
import com.intellij.codeInspection.dataFlow.Nullness;
import com.intellij.openapi.diagnostic.Logger;
import com.intellij.openapi.editor.Editor;
import com.intellij.openapi.project.Project;
import com.intellij.psi.*;
@@ -91,8 +90,7 @@ public class WrapObjectWithOptionalOfNullableFix extends MethodArgumentFix imple
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
return startElement.isValid() &&
startElement.getManager().isInProject(startElement) &&
return startElement.getManager().isInProject(startElement) &&
PsiUtil.isLanguageLevel8OrHigher(startElement) && areConvertible(((PsiExpression) startElement).getType(), type);
}
@@ -168,7 +168,6 @@ public class WrapWithAdapterMethodCallFix extends LocalQuickFixAndIntentionActio
return myType != null &&
myWrapper != null &&
myType.isValid() &&
startElement.isValid() &&
startElement.getManager().isInProject(startElement);
}
@@ -87,7 +87,7 @@ class AnnotateOverriddenMethodParameterFix implements LocalQuickFix {
if (AnnotationUtil.isAnnotatingApplicable(psiParam, myAnnotation)) {
AddAnnotationPsiFix fix = new AddAnnotationPsiFix(myAnnotation, psiParam, PsiNameValuePair.EMPTY_ARRAY, myAnnosToRemove);
PsiFile containingFile = psiParam.getContainingFile();
if (fix.isAvailable(project, containingFile, psiParam, psiParam)) {
if (psiParam.isValid() && fix.isAvailable(project, containingFile, psiParam, psiParam)) {
fix.invoke(project, containingFile, psiParam, psiParam);
}
}
@@ -96,7 +96,6 @@ public class AddMethodFix extends LocalQuickFixAndIntentionActionOnPsiElement {
final PsiClass myClass = (PsiClass)startElement;
return myMethodPrototype.isValid() &&
myClass.isValid() &&
myClass.getManager().isInProject(myClass) &&
myText != null &&
MethodSignatureUtil.findMethodBySignature(myClass, myMethodPrototype, false) == null
@@ -62,8 +62,7 @@ public class ImplementMethodsFix extends LocalQuickFixAndIntentionActionOnPsiEle
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
PsiElement myPsiElement = startElement;
return myPsiElement.isValid() && myPsiElement.getManager().isInProject(myPsiElement);
return startElement.getManager().isInProject(startElement);
}
@Override
@@ -58,7 +58,7 @@ public class MakeClassInterfaceFix extends LocalQuickFixAndIntentionActionOnPsiE
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
return myClass.isValid() && myClass.getManager().isInProject(myClass);
return myClass.getManager().isInProject(myClass);
}
@Override
@@ -74,8 +74,7 @@ public class MethodParameterFix extends LocalQuickFixAndIntentionActionOnPsiElem
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiMethod myMethod = (PsiMethod)startElement;
return myMethod.isValid()
&& myMethod.getManager().isInProject(myMethod)
return myMethod.getManager().isInProject(myMethod)
&& myParameterType != null
&& !TypeConversionUtil.isNullType(myParameterType)
&& myMethod.getReturnType() != null
@@ -75,8 +75,7 @@ public class MethodReturnTypeFix extends LocalQuickFixAndIntentionActionOnPsiEle
final PsiMethod myMethod = (PsiMethod)startElement;
final PsiType myReturnType = myReturnTypePointer.getType();
if (myMethod.isValid() &&
myMethod.getManager().isInProject(myMethod) &&
if (myMethod.getManager().isInProject(myMethod) &&
myReturnType != null &&
myReturnType.isValid() &&
!TypeConversionUtil.isNullType(myReturnType)) {
@@ -119,8 +119,7 @@ public class ModifierFix extends LocalQuickFixAndIntentionActionOnPsiElement {
@NotNull PsiElement endElement) {
final PsiModifierList myModifierList = (PsiModifierList)startElement;
PsiVariable variable = myVariable == null ? null : myVariable.getElement();
return myModifierList.isValid() &&
myModifierList.getManager().isInProject(myModifierList) &&
return myModifierList.getManager().isInProject(myModifierList) &&
myModifierList.hasExplicitModifier(myModifier) != myShouldHave &&
(variable == null || variable.isValid());
}
@@ -75,8 +75,7 @@ public class MoveBoundClassToFrontFix extends ExtendsListFix {
@NotNull PsiElement endElement) {
final PsiClass myClass = (PsiClass)startElement;
return
myClass.isValid()
&& myClass.getManager().isInProject(myClass)
myClass.getManager().isInProject(myClass)
&& myClassToExtendFrom != null
&& myClassToExtendFrom.isValid()
;
@@ -63,7 +63,7 @@ public class PullAsAbstractUpFix extends LocalQuickFixAndIntentionActionOnPsiEle
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
return startElement instanceof PsiMethod && startElement.isValid() && ((PsiMethod)startElement).getContainingClass() != null;
return startElement instanceof PsiMethod && ((PsiMethod)startElement).getContainingClass() != null;
}
@Override
@@ -48,7 +48,7 @@ public class RemoveTypeArgumentsFix extends LocalQuickFixAndIntentionActionOnPsi
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
return startElement instanceof PsiVariable && startElement.isValid() && ((PsiVariable)startElement).getTypeElement() != null;
return startElement instanceof PsiVariable && ((PsiVariable)startElement).getTypeElement() != null;
}
@Override
@@ -61,8 +61,7 @@ public class RemoveUnusedParameterFix extends LocalQuickFixAndIntentionActionOnP
@NotNull PsiElement endElement) {
final PsiParameter myParameter = (PsiParameter)startElement;
return
myParameter.isValid()
&& myParameter.getDeclarationScope() instanceof PsiMethod
myParameter.getDeclarationScope() instanceof PsiMethod
&& myParameter.getManager().isInProject(myParameter);
}
@@ -77,8 +77,7 @@ public class VariableTypeFix extends LocalQuickFixAndIntentionActionOnPsiElement
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
final PsiVariable myVariable = (PsiVariable)startElement;
return myVariable.isValid()
&& myVariable.getTypeElement() != null
return myVariable.getTypeElement() != null
&& myVariable.getManager().isInProject(myVariable)
&& getReturnType() != null
&& !LambdaUtil.notInferredType(getReturnType())
@@ -55,6 +55,7 @@ public abstract class LocalQuickFixOnPsiElement implements LocalQuickFix {
return getText();
}
// validity of startElement/endElement must be checked before calling this
public boolean isAvailable(@NotNull Project project,
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@@ -70,8 +71,6 @@ public abstract class LocalQuickFixOnPsiElement implements LocalQuickFix {
Project project = myStartElement.getProject();
return startElement != null &&
endElement != null &&
startElement.isValid() &&
(endElement == startElement || endElement.isValid()) &&
file != null &&
isAvailable(project, file, startElement, endElement);
}
@@ -84,7 +84,7 @@ public class RenameElementFix extends LocalQuickFixAndIntentionActionOnPsiElemen
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
return startElement.isValid() && RenameUtil.isValidName(project, startElement, myNewName);
return RenameUtil.isValidName(project, startElement, myNewName);
}
@Override
@@ -51,7 +51,7 @@ public interface XPathQuickFixFactory {
@NotNull PsiFile file,
@NotNull PsiElement startElement,
@NotNull PsiElement endElement) {
return startElement.isValid() && startElement.getParent().isValid();
return startElement.getParent().isValid();
}
@Override