diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
index 7dbf24b3c453..62a0fe7eace8 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/IndexOfReplaceableByContainsInspection.java
@@ -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())) {
diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
index bf3a7b2a6d59..c6451f03d616 100644
--- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
+++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/style/ListIndexOfReplaceableByContainsInspection.java
@@ -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())) {
diff --git a/plugins/InspectionGadgets/test/com/siyeh/igtest/migration/index_of_replaceable_by_contains/IndexOfReplaceableByContains.java b/plugins/InspectionGadgets/test/com/siyeh/igtest/migration/index_of_replaceable_by_contains/IndexOfReplaceableByContains.java
index 6781c1edba9c..df372249b7c8 100644
--- a/plugins/InspectionGadgets/test/com/siyeh/igtest/migration/index_of_replaceable_by_contains/IndexOfReplaceableByContains.java
+++ b/plugins/InspectionGadgets/test/com/siyeh/igtest/migration/index_of_replaceable_by_contains/IndexOfReplaceableByContains.java
@@ -7,5 +7,6 @@ class IndexOfReplaceableByContains {
boolean d = haystack.indexOf(needle) > -1;
boolean e = haystack.indexOf(needle) >= 0;
+ boolean f = (haystack.indexOf(needle)) >= (0);
}
}
\ No newline at end of file