diff --git a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertCompareToToEqualsIntention.java b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertCompareToToEqualsIntention.java index 1045b127024e..623a18b9a788 100644 --- a/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertCompareToToEqualsIntention.java +++ b/java/java-impl/src/com/intellij/codeInsight/intention/impl/ConvertCompareToToEqualsIntention.java @@ -21,6 +21,7 @@ import com.intellij.openapi.project.Project; import com.intellij.psi.*; import com.intellij.psi.tree.IElementType; import com.intellij.psi.util.PsiTreeUtil; +import com.intellij.psi.util.PsiUtil; import com.intellij.util.IncorrectOperationException; import com.siyeh.ig.psiutils.ExpressionUtils; import com.siyeh.ig.psiutils.MethodCallUtils; @@ -94,8 +95,8 @@ public class ConvertCompareToToEqualsIntention extends BaseElementAtCaretIntenti return null; } PsiMethodCallExpression compareToExpression; - final PsiExpression lhs = binaryExpression.getLOperand(); - final PsiExpression rhs = binaryExpression.getROperand(); + final PsiExpression lhs = PsiUtil.skipParenthesizedExprDown(binaryExpression.getLOperand()); + final PsiExpression rhs = PsiUtil.skipParenthesizedExprDown(binaryExpression.getROperand()); if (lhs instanceof PsiMethodCallExpression) { compareToExpression = (PsiMethodCallExpression)lhs; if (!MethodCallUtils.isCompareToCall(compareToExpression) || !ExpressionUtils.isZero(rhs)) { diff --git a/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses.java b/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses.java new file mode 100644 index 000000000000..bbaa0070ea70 --- /dev/null +++ b/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses.java @@ -0,0 +1,13 @@ +import java.lang.Integer; +import java.lang.String; + +class X { + void m() { + + Integer i1 = new Integer(0); + Integer i2 = new Integer(2); + + boolean b = (i1.compareTo(i2)) == (0); + + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses_after.java b/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses_after.java new file mode 100644 index 000000000000..c189fd078375 --- /dev/null +++ b/java/java-tests/testData/codeInsight/convertCompareToToEquals/parentheses_after.java @@ -0,0 +1,13 @@ +import java.lang.Integer; +import java.lang.String; + +class X { + void m() { + + Integer i1 = new Integer(0); + Integer i2 = new Integer(2); + + boolean b = i1.equals(i2); + + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/ConvertCompareToToEqualsTest.java b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/ConvertCompareToToEqualsTest.java index e16ea7c1fc58..c7010c40d479 100644 --- a/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/ConvertCompareToToEqualsTest.java +++ b/java/java-tests/testSrc/com/intellij/java/codeInsight/intention/ConvertCompareToToEqualsTest.java @@ -40,6 +40,10 @@ public class ConvertCompareToToEqualsTest extends JavaCodeInsightFixtureTestCase doTest(); } + public void testParentheses() { + doTest(); + } + public void testNotAvailable() { doTestNotAvailable(); }