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(); }