IG: fix comment tracking

This commit is contained in:
Bas Leijdekkers
2018-01-12 18:00:01 +01:00
parent 0dc80d038d
commit ab2ebdfbf2
4 changed files with 43 additions and 5 deletions
@@ -275,16 +275,19 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
private void buildSimplifiedAssignmentExpression(PsiAssignmentExpression expression, StringBuilder out, CommentTracker tracker) {
final IElementType tokenType = expression.getOperationTokenType();
final PsiExpression lhs = expression.getLExpression();
if (tokenType == JavaTokenType.ANDEQ) {
if (evaluate(expression.getRExpression()) == Boolean.TRUE) {
if (expression.getParent() instanceof PsiExpressionStatement) {
return;
}
out.append(expression.getLExpression().getText());
out.append(lhs.getText());
}
else {
out.append(expression.getLExpression().getText()).append("=false");
out.append(lhs.getText()).append("=false");
}
tracker.markUnchanged(lhs);
return;
}
else if (tokenType == JavaTokenType.OREQ) {
@@ -292,14 +295,16 @@ public class PointlessBooleanExpressionInspection extends BaseInspection {
if (expression.getParent() instanceof PsiExpressionStatement) {
return;
}
out.append(expression.getLExpression().getText());
out.append(lhs.getText());
}
else {
out.append(expression.getLExpression().getText()).append("=true");
out.append(lhs.getText()).append("=true");
}
tracker.markUnchanged(lhs);
return;
}
out.append(expression.getLExpression().getText()).append(expression.getOperationSign().getText());
tracker.markUnchanged(lhs);
out.append(lhs.getText()).append(expression.getOperationSign().getText());
buildSimplifiedExpression(expression.getRExpression(), out, tracker);
}
@@ -0,0 +1,17 @@
class CompoundAssignmentSideEffect {
void m() {
// 2
/*3*/
/*4*/
createSomeObject(/*1*/).b = false;
}
X createSomeObject() {
return new X();
}
class X {
boolean b = false;
}
}
@@ -0,0 +1,15 @@
class CompoundAssignmentSideEffect {
void m() {
createSomeObject(/*1*/).b // 2
&= /*3*//*4*/ false<caret>;
}
X createSomeObject() {
return new X();
}
class X {
boolean b = false;
}
}
@@ -26,4 +26,5 @@ public class PointlessBooleanExpressionFixTest extends IGQuickFixesTestCase {
public void testCompoundAssignment2() { doTest(); }
public void testCompoundAssignment3() { doTest(); }
public void testCompoundAssignmentSideEffect() { doTest(InspectionGadgetsBundle.message("boolean.expression.remove.compound.assignment.quickfix")); }
public void testCompoundAssignmentSideEffect2() { doTest(); }
}