diff --git a/src/main/java/com/puppycrawl/tools/checkstyle/checks/CheckUtils.java b/src/main/java/com/puppycrawl/tools/checkstyle/checks/CheckUtils.java index 16a68e07b..3d1ae3662 100644 --- a/src/main/java/com/puppycrawl/tools/checkstyle/checks/CheckUtils.java +++ b/src/main/java/com/puppycrawl/tools/checkstyle/checks/CheckUtils.java @@ -151,7 +151,7 @@ public final class CheckUtils */ public static double parseDouble(String aText, int aType) { - String txt = aText; + String txt = aText.replaceAll("_", ""); double result = 0; switch (aType) { case TokenTypes.NUM_FLOAT: diff --git a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/MagicNumberCheckTest.java b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/MagicNumberCheckTest.java index 76226855f..c204b59bd 100644 --- a/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/MagicNumberCheckTest.java +++ b/src/test/java/com/puppycrawl/tools/checkstyle/checks/coding/MagicNumberCheckTest.java @@ -32,8 +32,8 @@ public class MagicNumberCheckTest final DefaultConfiguration checkConfig = createCheckConfig(MagicNumberCheck.class); final String[] expected = { - "41:26: '3' is a magic number.", - "42:32: '1.5' is a magic number.", + "41:26: '3_000' is a magic number.", + "42:32: '1.5_0' is a magic number.", "43:27: '3' is a magic number.", "43:31: '4' is a magic number.", "45:29: '3' is a magic number.", @@ -46,7 +46,7 @@ public class MagicNumberCheckTest "55:39: '3' is a magic number.", "60:25: '010' is a magic number.", "61:25: '011' is a magic number.", - "63:30: '010L' is a magic number.", + "63:30: '0_10L' is a magic number.", "64:30: '011l' is a magic number.", "68:24: '0x10' is a magic number.", "69:24: '0X011' is a magic number.", @@ -80,7 +80,7 @@ public class MagicNumberCheckTest { final DefaultConfiguration checkConfig = createCheckConfig(MagicNumberCheck.class); - checkConfig.addAttribute("ignoreNumbers", "0, 1, 3.0, 8, 16"); + checkConfig.addAttribute("ignoreNumbers", "0, 1, 3.0, 8, 16, 3000"); checkConfig.addAttribute("ignoreAnnotation", "true"); final String[] expected = { "22:25: '2' is a magic number.", @@ -90,7 +90,7 @@ public class MagicNumberCheckTest "34:29: '2' is a magic number.", "36:17: '2' is a magic number.", "38:19: '2.0' is a magic number.", - "42:32: '1.5' is a magic number.", + "42:32: '1.5_0' is a magic number.", "43:31: '4' is a magic number.", "48:26: '1.5' is a magic number.", "50:29: '5' is a magic number.", @@ -148,8 +148,8 @@ public class MagicNumberCheckTest "36:17: '2' is a magic number.", "38:13: '1.0' is a magic number.", "38:19: '2.0' is a magic number.", - "41:26: '3' is a magic number.", - "42:32: '1.5' is a magic number.", + "41:26: '3_000' is a magic number.", + "42:32: '1.5_0' is a magic number.", "43:27: '3' is a magic number.", "43:31: '4' is a magic number.", "45:29: '3' is a magic number.", @@ -163,7 +163,7 @@ public class MagicNumberCheckTest "59:25: '00' is a magic number.", "60:25: '010' is a magic number.", "61:25: '011' is a magic number.", - "63:30: '010L' is a magic number.", + "63:30: '0_10L' is a magic number.", "64:30: '011l' is a magic number.", "67:23: '0x0' is a magic number.", "68:24: '0x10' is a magic number.", @@ -205,7 +205,7 @@ public class MagicNumberCheckTest checkConfig.addAttribute("tokens", "NUM_INT, NUM_LONG"); checkConfig.addAttribute("ignoreAnnotation", "true"); final String[] expected = { - "41:26: '3' is a magic number.", + "41:26: '3_000' is a magic number.", "43:27: '3' is a magic number.", "43:31: '4' is a magic number.", "45:29: '3' is a magic number.", @@ -217,7 +217,7 @@ public class MagicNumberCheckTest "55:39: '3' is a magic number.", "60:25: '010' is a magic number.", "61:25: '011' is a magic number.", - "63:30: '010L' is a magic number.", + "63:30: '0_10L' is a magic number.", "64:30: '011l' is a magic number.", "68:24: '0x10' is a magic number.", "69:24: '0X011' is a magic number.", @@ -251,7 +251,7 @@ public class MagicNumberCheckTest checkConfig.addAttribute("tokens", "NUM_INT, NUM_LONG"); checkConfig.addAttribute("ignoreAnnotation", "true"); final String[] expected = { - "41:26: '3' is a magic number.", + "41:26: '3_000' is a magic number.", "43:27: '3' is a magic number.", "43:31: '4' is a magic number.", "45:29: '3' is a magic number.", @@ -263,7 +263,7 @@ public class MagicNumberCheckTest "55:39: '3' is a magic number.", "60:25: '010' is a magic number.", "61:25: '011' is a magic number.", - "63:30: '010L' is a magic number.", + "63:30: '0_10L' is a magic number.", "64:30: '011l' is a magic number.", "68:24: '0x10' is a magic number.", "69:24: '0X011' is a magic number.", @@ -292,8 +292,8 @@ public class MagicNumberCheckTest checkConfig.addAttribute("ignoreHashCodeMethod", "true"); checkConfig.addAttribute("ignoreAnnotation", "true"); final String[] expected = { - "41:26: '3' is a magic number.", - "42:32: '1.5' is a magic number.", + "41:26: '3_000' is a magic number.", + "42:32: '1.5_0' is a magic number.", "43:27: '3' is a magic number.", "43:31: '4' is a magic number.", "45:29: '3' is a magic number.", @@ -306,7 +306,7 @@ public class MagicNumberCheckTest "55:39: '3' is a magic number.", "60:25: '010' is a magic number.", "61:25: '011' is a magic number.", - "63:30: '010L' is a magic number.", + "63:30: '0_10L' is a magic number.", "64:30: '011l' is a magic number.", "68:24: '0x10' is a magic number.", "69:24: '0X011' is a magic number.", diff --git a/src/test/resources/com/puppycrawl/tools/checkstyle/InputMagicNumber.java b/src/test/resources/com/puppycrawl/tools/checkstyle/InputMagicNumber.java index d87109206..3674b5762 100644 --- a/src/test/resources/com/puppycrawl/tools/checkstyle/InputMagicNumber.java +++ b/src/test/resources/com/puppycrawl/tools/checkstyle/InputMagicNumber.java @@ -8,12 +8,12 @@ package com.puppycrawl.tools.checkstyle; public class InputMagicNumber { public void magicMethod() { //constants, ignore - final int INT_CONST = 101; - final long LONG_CONST1 = 100L; + final int INT_CONST = 101_000; + final long LONG_CONST1 = 100_000L; final long LONG_CONST2 = 100l; - final float FLOAT_CONST1 = 1.5F; + final float FLOAT_CONST1 = 1.500_0F; final float FLOAT_CONST2 = 1.5f; - final double DOUBLE_CONST1 = 1.5D; + final double DOUBLE_CONST1 = 1.500_0D; final double DOUBLE_CONST2 = 1.5d; final double DOUBLE_CONST3 = 1.5; @@ -38,8 +38,8 @@ public class InputMagicNumber { if (1.0 < 2.0); //magic numbers - int int_magic1 = 3; - double double_magic1 = 1.5; + int int_magic1 = 3_000; + double double_magic1 = 1.5_0; int int_magic2 = (3 + 4); int_array = new int[3]; @@ -60,7 +60,7 @@ public class InputMagicNumber { int octalVar8 = 010; int octalVar9 = 011; - long longOctalVar8 = 010L; + long longOctalVar8 = 0_10L; long longOctalVar9 = 011l; //hex