mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
java redundant cast: unconditionally skip casts with varargs
GitOrigin-RevId: 01a0c7b240679155fab2e93e6e60db08000b9233
This commit is contained in:
committed by
intellij-monorepo-bot
parent
7107a6a626
commit
2d7494d72a
-12
@@ -9,10 +9,8 @@ import com.intellij.java.analysis.JavaAnalysisBundle;
|
||||
import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.util.PsiExpressionTrimRenderer;
|
||||
import com.intellij.psi.util.PsiTreeUtil;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.intellij.psi.util.RedundantCastUtil;
|
||||
import com.siyeh.ig.bugs.NullArgumentToVariableArgMethodInspection;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
@@ -26,7 +24,6 @@ public class RedundantCastInspection extends GenericsInspectionToolBase {
|
||||
@NonNls private static final String SHORT_NAME = "RedundantCast";
|
||||
|
||||
public boolean IGNORE_SUSPICIOUS_METHOD_CALLS;
|
||||
public boolean IGNORE_SUSPICIOUS_VARARG_METHOD_CALLS = true;
|
||||
|
||||
public RedundantCastInspection() {
|
||||
myQuickFixAction = new AcceptSuggested();
|
||||
@@ -56,7 +53,6 @@ public class RedundantCastInspection extends GenericsInspectionToolBase {
|
||||
public JComponent createOptionsPanel() {
|
||||
final MultipleCheckboxOptionsPanel optionsPanel = new MultipleCheckboxOptionsPanel(this);
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("ignore.casts.in.suspicious.collections.method.calls"), "IGNORE_SUSPICIOUS_METHOD_CALLS");
|
||||
optionsPanel.addCheckbox(JavaAnalysisBundle.message("ignore.casts.in.suspicious.varargs.method.calls"), "IGNORE_SUSPICIOUS_VARARG_METHOD_CALLS");
|
||||
return optionsPanel;
|
||||
}
|
||||
|
||||
@@ -75,14 +71,6 @@ public class RedundantCastInspection extends GenericsInspectionToolBase {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
if (gParent instanceof PsiCallExpression && IGNORE_SUSPICIOUS_VARARG_METHOD_CALLS) {
|
||||
PsiExpressionList expressionList = (PsiExpressionList)parent;
|
||||
if (PsiTreeUtil.isAncestor(expressionList.getExpressions()[expressionList.getExpressionCount() - 1], operand, true) &&
|
||||
NullArgumentToVariableArgMethodInspection.isSuspiciousVararg((PsiCallExpression)gParent, operand.getType())) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
String message = JavaAnalysisBundle.message("inspection.redundant.cast.problem.descriptor",
|
||||
|
||||
@@ -18,8 +18,8 @@ import com.intellij.psi.infos.MethodCandidateInfo;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.util.Function;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.siyeh.ig.bugs.NullArgumentToVariableArgMethodInspection;
|
||||
import com.siyeh.ig.psiutils.ExpectedTypeUtils;
|
||||
import com.siyeh.ig.psiutils.ExpressionUtils;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
@@ -377,10 +377,9 @@ public class RedundantCastUtil {
|
||||
}
|
||||
|
||||
if (i == args.length - 1 && args.length == parameters.length && parameters[i].isVarArgs() &&
|
||||
(ExpressionUtils.isNullLiteral(cast.getOperand()) ||
|
||||
(NullArgumentToVariableArgMethodInspection.isSuspiciousVararg(newCall, newArgs[i].getType()) ||
|
||||
oldResult instanceof MethodCandidateInfo && newResult instanceof MethodCandidateInfo &&
|
||||
((MethodCandidateInfo)oldResult).getApplicabilityLevel() != ((MethodCandidateInfo)newResult).getApplicabilityLevel())) {
|
||||
//do not mark cast to resolve ambiguity for calling varargs method with inexact argument
|
||||
continue;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user