Issue 134: Exception thrown when parsing numeric constant "3.14_15F"
This commit is contained in:
parent
f768a8f8cc
commit
08ea556aed
|
|
@ -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:
|
||||
|
|
|
|||
|
|
@ -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.",
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Reference in New Issue