From 06814700296f0d4eb6df8944712e745a6f2f86b8 Mon Sep 17 00:00:00 2001 From: Bas Leijdekkers Date: Sun, 6 Mar 2016 11:11:13 +0100 Subject: [PATCH] IG: replace unnecessary boxing with Boolean constant (IDEA-152361) --- .../ig/migration/UnnecessaryBoxingInspection.java | 11 +++++++++++ .../ig/fixes/migration/UnnecessaryBoxingFixTest.java | 6 ++++++ 2 files changed, 17 insertions(+) diff --git a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java index 3cb0ce00b70a..71c1e37408f5 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java @@ -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; diff --git a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java index 3bd9150c0cdb..ba793c847cec 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java @@ -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(); }