mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
PointlessNullCheckInspection: fix to switch off reports on calls
This commit is contained in:
+1
@@ -1182,6 +1182,7 @@ pointless.nullcheck.problem.descriptor.instanceof=Unnecessary 'null' check befor
|
||||
pointless.nullcheck.problem.descriptor.call=Unnecessary ''null'' check before ''{0}()'' call
|
||||
pointless.nullcheck.simplify.quickfix=Remove unnecessary ''{0}'' condition
|
||||
pointless.nullcheck.option.report.calls=Report unnecessary 'null' checks before method calls
|
||||
pointless.nullcheck.option.report.calls.off=Do not report pointless 'null' check before calls
|
||||
introduce.constant.quickfix=Introduce constant
|
||||
make.initialization.explicit.quickfix=Make initialization explicit
|
||||
move.anonymous.to.inner.quickfix=Convert to named inner class
|
||||
|
||||
+1
-1
@@ -22,7 +22,7 @@ import org.jetbrains.annotations.NotNull;
|
||||
|
||||
public class DelegatingFix extends InspectionGadgetsFix {
|
||||
|
||||
private final LocalQuickFix delegate;
|
||||
protected final LocalQuickFix delegate;
|
||||
|
||||
public DelegatingFix(LocalQuickFix delegate) {
|
||||
this.delegate = delegate;
|
||||
|
||||
+28
-2
@@ -15,12 +15,15 @@
|
||||
*/
|
||||
package com.siyeh.ig.controlflow;
|
||||
|
||||
import com.intellij.codeInsight.intention.LowPriorityAction;
|
||||
import com.intellij.codeInspection.ProblemDescriptor;
|
||||
import com.intellij.codeInspection.SetInspectionOptionFix;
|
||||
import com.intellij.codeInspection.dataFlow.ControlFlowAnalyzer;
|
||||
import com.intellij.codeInspection.dataFlow.MethodContract;
|
||||
import com.intellij.codeInspection.dataFlow.StandardMethodContract;
|
||||
import com.intellij.codeInspection.ui.SingleCheckboxOptionsPanel;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.openapi.util.Iconable;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
@@ -28,6 +31,7 @@ import com.intellij.psi.util.PsiUtil;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
import com.siyeh.ig.BaseInspectionVisitor;
|
||||
import com.siyeh.ig.DelegatingFix;
|
||||
import com.siyeh.ig.InspectionGadgetsFix;
|
||||
import com.siyeh.ig.psiutils.*;
|
||||
import one.util.streamex.IntStreamEx;
|
||||
@@ -55,6 +59,8 @@ import static com.intellij.util.ObjectUtils.tryCast;
|
||||
* @author Hamlet D'Arcy
|
||||
*/
|
||||
public class PointlessNullCheckInspection extends BaseInspection {
|
||||
private static final String REPORT_CALLS_OPTION = "REPORT_CALLS";
|
||||
|
||||
public boolean REPORT_CALLS = true;
|
||||
|
||||
@Nls
|
||||
@@ -86,10 +92,30 @@ public class PointlessNullCheckInspection extends BaseInspection {
|
||||
return new PointlessNullCheckVisitor(REPORT_CALLS);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
@Override
|
||||
public InspectionGadgetsFix buildFix(Object... infos) {
|
||||
protected InspectionGadgetsFix[] buildFixes(Object... infos) {
|
||||
final PsiExpression expression = (PsiExpression)infos[0];
|
||||
return new PointlessNullCheckFix(expression.getText());
|
||||
PsiExpression parent = PsiTreeUtil.getParentOfType((PsiElement)infos[1], PsiInstanceOfExpression.class, PsiMethodCallExpression.class);
|
||||
PointlessNullCheckFix removeNullCheckFix = new PointlessNullCheckFix(expression.getText());
|
||||
if (parent instanceof PsiMethodCallExpression) {
|
||||
return new InspectionGadgetsFix[]{removeNullCheckFix, new DoNotReportOnCallsFix(this)};
|
||||
}
|
||||
else {
|
||||
return new InspectionGadgetsFix[]{removeNullCheckFix};
|
||||
}
|
||||
}
|
||||
|
||||
private static class DoNotReportOnCallsFix extends DelegatingFix implements LowPriorityAction, Iconable {
|
||||
public DoNotReportOnCallsFix(PointlessNullCheckInspection inspection) {
|
||||
super(new SetInspectionOptionFix(inspection, REPORT_CALLS_OPTION,
|
||||
InspectionGadgetsBundle.message("pointless.nullcheck.option.report.calls.off"), false));
|
||||
}
|
||||
|
||||
@Override
|
||||
public Icon getIcon(int flags) {
|
||||
return ((Iconable)delegate).getIcon(flags);
|
||||
}
|
||||
}
|
||||
|
||||
private static class PointlessNullCheckFix extends InspectionGadgetsFix {
|
||||
|
||||
Reference in New Issue
Block a user