mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IndexOfReplaceableByContains: support parentheses
This commit is contained in:
+8
-12
@@ -53,7 +53,7 @@ public class IndexOfReplaceableByContainsInspection
|
||||
@NotNull
|
||||
public String buildErrorString(Object... infos) {
|
||||
final PsiBinaryExpression expression = (PsiBinaryExpression)infos[0];
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
final String text;
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
final PsiMethodCallExpression callExpression =
|
||||
@@ -63,7 +63,7 @@ public class IndexOfReplaceableByContainsInspection
|
||||
}
|
||||
else {
|
||||
final PsiMethodCallExpression callExpression =
|
||||
(PsiMethodCallExpression)expression.getROperand();
|
||||
(PsiMethodCallExpression)PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
assert callExpression != null;
|
||||
text = createContainsExpressionText(callExpression, true,
|
||||
expression.getOperationTokenType(), new CommentTracker());
|
||||
@@ -88,8 +88,8 @@ public class IndexOfReplaceableByContainsInspection
|
||||
return;
|
||||
}
|
||||
final PsiBinaryExpression expression = (PsiBinaryExpression)element;
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
final PsiExpression rhs = PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
CommentTracker commentTracker = new CommentTracker();
|
||||
final String newExpressionText;
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
@@ -162,14 +162,10 @@ public class IndexOfReplaceableByContainsInspection
|
||||
public void visitBinaryExpression(
|
||||
PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
if (rhs == null) {
|
||||
return;
|
||||
}
|
||||
if (!ComparisonUtils.isComparison(expression)) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression rhs = PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
if (rhs == null || lhs == null) return;
|
||||
if (!ComparisonUtils.isComparison(expression)) return;
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
if (canBeReplacedByContains(lhs, rhs, false,
|
||||
expression.getOperationTokenType())) {
|
||||
|
||||
+9
-12
@@ -20,6 +20,7 @@ import com.intellij.openapi.project.Project;
|
||||
import com.intellij.psi.*;
|
||||
import com.intellij.psi.search.GlobalSearchScope;
|
||||
import com.intellij.psi.tree.IElementType;
|
||||
import com.intellij.psi.util.PsiUtil;
|
||||
import com.siyeh.HardcodedMethodConstants;
|
||||
import com.siyeh.InspectionGadgetsBundle;
|
||||
import com.siyeh.ig.BaseInspection;
|
||||
@@ -47,7 +48,7 @@ public class ListIndexOfReplaceableByContainsInspection
|
||||
@NotNull
|
||||
public String buildErrorString(Object... infos) {
|
||||
final PsiBinaryExpression expression = (PsiBinaryExpression)infos[0];
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
final String text;
|
||||
CommentTracker tracker = new CommentTracker();
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
@@ -58,7 +59,7 @@ public class ListIndexOfReplaceableByContainsInspection
|
||||
}
|
||||
else {
|
||||
final PsiMethodCallExpression callExpression =
|
||||
(PsiMethodCallExpression)expression.getROperand();
|
||||
(PsiMethodCallExpression)PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
assert callExpression != null;
|
||||
text = createContainsExpressionText(callExpression, true,
|
||||
expression.getOperationTokenType(), tracker);
|
||||
@@ -80,8 +81,8 @@ public class ListIndexOfReplaceableByContainsInspection
|
||||
protected void doFix(Project project, ProblemDescriptor descriptor) {
|
||||
final PsiBinaryExpression expression =
|
||||
(PsiBinaryExpression)descriptor.getPsiElement();
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
final PsiExpression rhs = PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
CommentTracker tracker = new CommentTracker();
|
||||
final String newExpressionText;
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
@@ -148,14 +149,10 @@ public class ListIndexOfReplaceableByContainsInspection
|
||||
public void visitBinaryExpression(
|
||||
PsiBinaryExpression expression) {
|
||||
super.visitBinaryExpression(expression);
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
if (rhs == null) {
|
||||
return;
|
||||
}
|
||||
if (!ComparisonUtils.isComparison(expression)) {
|
||||
return;
|
||||
}
|
||||
final PsiExpression lhs = expression.getLOperand();
|
||||
final PsiExpression rhs = PsiUtil.skipParenthesizedExprDown(expression.getROperand());
|
||||
final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(expression.getLOperand());
|
||||
if (rhs == null || lhs == null) return;
|
||||
if (!ComparisonUtils.isComparison(expression)) return;
|
||||
if (lhs instanceof PsiMethodCallExpression) {
|
||||
if (canBeReplacedByContains(lhs, rhs, false,
|
||||
expression.getOperationTokenType())) {
|
||||
|
||||
+1
@@ -7,5 +7,6 @@ class IndexOfReplaceableByContains {
|
||||
|
||||
boolean d = <warning descr="'haystack.indexOf(needle) > -1' can be replaced with 'haystack.contains(needle)'">haystack.indexOf(needle) > -1</warning>;
|
||||
boolean e = <warning descr="'haystack.indexOf(needle) >= 0' can be replaced with 'haystack.contains(needle)'">haystack.indexOf(needle) >= 0</warning>;
|
||||
boolean f = <warning descr="'(haystack.indexOf(needle)) >= (0)' can be replaced with 'haystack.contains(needle)'">(haystack.indexOf(needle)) >= (0)</warning>;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user