mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-87966 Pointless boolean expression inspection: false positive fixed
This commit is contained in:
+1
-2
@@ -47,12 +47,11 @@ public class BreakStringOnLineBreaksIntentionAction extends PsiElementBaseIntent
|
||||
}
|
||||
|
||||
final int indexOfSlashN = text.indexOf("\\n");
|
||||
final int indexOfSlashNSlashR = text.indexOf("\\n\\r");
|
||||
|
||||
if (indexOfSlashN == -1 || Comparing.equal(text.substring(indexOfSlashN, text.length()), "\\n\"")){
|
||||
return false;
|
||||
}
|
||||
|
||||
final int indexOfSlashNSlashR = text.indexOf("\\n\\r");
|
||||
if (indexOfSlashNSlashR != -1 && Comparing.equal(text.substring(indexOfSlashNSlashR, text.length()), "\\n\\r\"")){
|
||||
return false;
|
||||
}
|
||||
|
||||
+15
-23
@@ -38,18 +38,15 @@ import java.util.Set;
|
||||
|
||||
public class PointlessBooleanExpressionInspection extends BaseInspection {
|
||||
|
||||
private static final Set<IElementType> booleanTokens = new HashSet<IElementType>(7);
|
||||
|
||||
static {
|
||||
booleanTokens.add(JavaTokenType.ANDAND);
|
||||
booleanTokens.add(JavaTokenType.AND);
|
||||
booleanTokens.add(JavaTokenType.OROR);
|
||||
booleanTokens.add(JavaTokenType.OR);
|
||||
booleanTokens.add(JavaTokenType.XOR);
|
||||
booleanTokens.add(JavaTokenType.EQEQ);
|
||||
booleanTokens.add(JavaTokenType.NE);
|
||||
}
|
||||
|
||||
private static final Set<IElementType> booleanTokens = new HashSet<IElementType>() {{
|
||||
add(JavaTokenType.ANDAND);
|
||||
add(JavaTokenType.AND);
|
||||
add(JavaTokenType.OROR);
|
||||
add(JavaTokenType.OR);
|
||||
add(JavaTokenType.XOR);
|
||||
add(JavaTokenType.EQEQ);
|
||||
add(JavaTokenType.NE);
|
||||
}};
|
||||
|
||||
/**
|
||||
* @noinspection PublicField
|
||||
@@ -172,10 +169,8 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
|
||||
|
||||
private static String createStringForNegatedExpression(PsiExpression exp) {
|
||||
if (ComparisonUtils.isComparison(exp)) {
|
||||
final PsiBinaryExpression binaryExpression =
|
||||
(PsiBinaryExpression)exp;
|
||||
final String negatedComparison =
|
||||
ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
|
||||
final PsiBinaryExpression binaryExpression = (PsiBinaryExpression)exp;
|
||||
final String negatedComparison = ComparisonUtils.getNegatedComparison(binaryExpression.getOperationTokenType());
|
||||
final PsiExpression lhs = binaryExpression.getLOperand();
|
||||
final PsiExpression rhs = binaryExpression.getROperand();
|
||||
assert rhs != null;
|
||||
@@ -314,16 +309,13 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
|
||||
}
|
||||
|
||||
final boolean isPointless;
|
||||
if (sign.equals(JavaTokenType.EQEQ) ||
|
||||
sign.equals(JavaTokenType.NE)) {
|
||||
if (sign.equals(JavaTokenType.EQEQ) || sign.equals(JavaTokenType.NE)) {
|
||||
isPointless = equalityExpressionIsPointless(operands);
|
||||
}
|
||||
else if (sign.equals(JavaTokenType.ANDAND) ||
|
||||
sign.equals(JavaTokenType.AND)) {
|
||||
else if (sign.equals(JavaTokenType.ANDAND) || sign.equals(JavaTokenType.AND)) {
|
||||
isPointless = andExpressionIsPointless(operands);
|
||||
}
|
||||
else if (sign.equals(JavaTokenType.OROR) ||
|
||||
sign.equals(JavaTokenType.OR)) {
|
||||
else if (sign.equals(JavaTokenType.OROR) || sign.equals(JavaTokenType.OR)) {
|
||||
isPointless = orExpressionIsPointless(operands);
|
||||
}
|
||||
else if (sign.equals(JavaTokenType.XOR)) {
|
||||
@@ -384,7 +376,7 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
|
||||
@Nullable
|
||||
private Boolean evaluate(@Nullable PsiExpression expression) {
|
||||
if (m_ignoreExpressionsContainingConstants && !(expression instanceof PsiLiteralExpression)) {
|
||||
return false;
|
||||
return null;
|
||||
}
|
||||
|
||||
if (expression == null) {
|
||||
|
||||
Reference in New Issue
Block a user