mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-04-19 13:02:30 +07:00
disable "flip comparison" on deeply broken code
This commit is contained in:
@@ -17,23 +17,17 @@ package com.siyeh.ipp.bool;
|
||||
|
||||
import com.intellij.psi.PsiBinaryExpression;
|
||||
import com.intellij.psi.PsiElement;
|
||||
import com.intellij.psi.PsiErrorElement;
|
||||
import com.intellij.psi.PsiExpression;
|
||||
import com.siyeh.ig.psiutils.ComparisonUtils;
|
||||
import com.siyeh.ipp.base.PsiElementPredicate;
|
||||
import com.siyeh.ipp.psiutils.ErrorUtil;
|
||||
|
||||
class ComparisonPredicate implements PsiElementPredicate {
|
||||
|
||||
@Override
|
||||
public boolean satisfiedBy(PsiElement element) {
|
||||
if (!(element instanceof PsiBinaryExpression)) {
|
||||
return false;
|
||||
}
|
||||
final PsiBinaryExpression expression = (PsiBinaryExpression)element;
|
||||
if (!ComparisonUtils.isComparison(expression)) {
|
||||
return false;
|
||||
}
|
||||
final PsiExpression rhs = expression.getROperand();
|
||||
return rhs != null && !(element.getNextSibling() instanceof PsiErrorElement);
|
||||
return element instanceof PsiBinaryExpression &&
|
||||
ComparisonUtils.isComparison((PsiExpression)element) &&
|
||||
!ErrorUtil.containsDeepError(element);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -42,4 +42,11 @@ public class FlipComparisonIntentionTest extends IPPTestCase {
|
||||
" {x(HashSet</*_Flip '>' to '<'*/>());}" +
|
||||
"}");
|
||||
}
|
||||
|
||||
public void testBrokenCode2() {
|
||||
doTestIntentionNotAvailable("class Builder {\n" +
|
||||
" Builder b = !(new//simple end comment\n" +
|
||||
" </*_Flip '>=' to '<='*/> Builder().method( >= caret) >1).method(2);\n" +
|
||||
"}");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user