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 0476d38402e1..4679b524e9a4 100644 --- a/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java +++ b/plugins/InspectionGadgets/InspectionGadgetsAnalysis/src/com/siyeh/ig/migration/UnnecessaryBoxingInspection.java @@ -138,12 +138,14 @@ public class UnnecessaryBoxingInspection extends BaseInspection { if (unboxedType.equals(PsiType.LONG) && expressionType.equals(PsiType.INT)) { return text + 'L'; } - else if (unboxedType.equals(PsiType.FLOAT) && (expressionType.equals(PsiType.INT) || (expressionType.equals(PsiType.DOUBLE)) && - !StringUtil.endsWithIgnoreCase(text, "d"))) { - return text + 'f'; - } - else if (unboxedType.equals(PsiType.DOUBLE) && expressionType.equals(PsiType.INT)) { - return text + 'd'; + else if (!text.startsWith("0")) { // no octal & hex + if (unboxedType.equals(PsiType.FLOAT) && (expressionType.equals(PsiType.INT) || (expressionType.equals(PsiType.DOUBLE)) && + !StringUtil.endsWithIgnoreCase(text, "d"))) { + return text + 'f'; + } + else if (unboxedType.equals(PsiType.DOUBLE) && expressionType.equals(PsiType.INT)) { + return text + 'd'; + } } } if (ParenthesesUtils.getPrecedence(unboxedExpression) > ParenthesesUtils.TYPE_CAST_PRECEDENCE) { 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 b44098fb487a..a2d0f96aebe4 100644 --- a/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java +++ b/plugins/InspectionGadgets/testsrc/com/siyeh/ig/fixes/migration/UnnecessaryBoxingFixTest.java @@ -74,6 +74,18 @@ public class UnnecessaryBoxingFixTest extends IGQuickFixesTestCase { "\"a\" + (1L - 2L) + \"b\""); } + public void testHex() { + doMemberTest(InspectionGadgetsBundle.message("unnecessary.boxing.remove.quickfix"), + "float f = Float./**/valueOf(0x123);", + "float f = (float) 0x123;"); + } + + public void testOctal() { + doMemberTest(InspectionGadgetsBundle.message("unnecessary.boxing.remove.quickfix"), + "float f = Float.valueOf/**/(0123);", + "float f = (float) 0123;"); + } + public void testCast() { doFixTest(); }