JavaPsiMathUtil#add created & used; JavaPsiMathUtil#simplifyComparison

This commit is contained in:
Tagir Valeev
2018-04-18 17:22:29 +07:00
parent 2fcc7ff4d4
commit ea72e1d05a
4 changed files with 229 additions and 83 deletions
@@ -853,7 +853,7 @@ public class StreamApiMigrationInspection extends AbstractBaseJavaLocalInspectio
@Override
String createReplacement(CommentTracker ct) {
return ".limit(" + getLimitExpression(ct) + ")";
return ".limit(" + JavaPsiMathUtil.add(myExpression, myDelta, ct) + ")";
}
PsiLocalVariable getCounterVariable() {
@@ -875,19 +875,6 @@ public class StreamApiMigrationInspection extends AbstractBaseJavaLocalInspectio
boolean isWriteAllowed(PsiVariable variable, PsiExpression reference) {
return variable == myCounterVariable && PsiTreeUtil.isAncestor(myCounter, reference, false);
}
private String getLimitExpression(CommentTracker ct) {
if (myDelta == 0) {
return ct.text(myExpression);
}
if (myExpression instanceof PsiLiteralExpression) {
Object value = ((PsiLiteralExpression)myExpression).getValue();
if (value instanceof Integer || value instanceof Long) {
return String.valueOf(((Number)value).longValue() + myDelta);
}
}
return ct.text(myExpression, ParenthesesUtils.ADDITIVE_PRECEDENCE) + "+" + myDelta;
}
}
static class DistinctOp extends Operation {