ConvertCompareToToEqualsIntention: support parentheses

This commit is contained in:
Tagir Valeev
2018-07-06 13:47:17 +07:00
parent 4d1b9a6653
commit fe6ebf0a01
4 changed files with 33 additions and 2 deletions

View File

@@ -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)) {

View File

@@ -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.compareT<caret>o(i2)) == (0);
}
}

View File

@@ -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)<caret>;
}
}

View File

@@ -40,6 +40,10 @@ public class ConvertCompareToToEqualsTest extends JavaCodeInsightFixtureTestCase
doTest();
}
public void testParentheses() {
doTest();
}
public void testNotAvailable() {
doTestNotAvailable();
}