IG: replace unnecessary boxing with Boolean constant (IDEA-152361)

This commit is contained in:
Bas Leijdekkers
2016-03-06 14:34:24 +01:00
parent 15290c84aa
commit 0681470029
2 changed files with 17 additions and 0 deletions
@@ -99,6 +99,17 @@ public class UnnecessaryBoxingInspection extends BaseInspection {
return;
}
final PsiExpression unboxedExpression = arguments[0];
final Object value = ExpressionUtils.computeConstantExpression(unboxedExpression);
if (value != null) {
if (value == Boolean.TRUE) {
PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.TRUE");
return;
}
else if (value == Boolean.FALSE) {
PsiReplacementUtil.replaceExpression(expression, "java.lang.Boolean.FALSE");
return;
}
}
final String replacementText = getUnboxedExpressionText(unboxedExpression, boxedType);
if (replacementText == null) {
return;
@@ -56,6 +56,12 @@ public class UnnecessaryBoxingFixTest extends IGQuickFixesTestCase {
"Double l = 1d;");
}
public void testBooleanLiteral() {
doMemberTest(InspectionGadgetsBundle.message("unnecessary.boxing.remove.quickfix"),
"final Boolean aBoolean = Boolean.valueOf(/**/true);",
"final Boolean aBoolean = Boolean.TRUE;");
}
public void testCast() {
doFixTest();
}