diff --git a/src/main/java/org/checkstyle/autofix/recipe/UpperEll.java b/src/main/java/org/checkstyle/autofix/recipe/UpperEll.java index c2997cd..7042dbd 100644 --- a/src/main/java/org/checkstyle/autofix/recipe/UpperEll.java +++ b/src/main/java/org/checkstyle/autofix/recipe/UpperEll.java @@ -166,7 +166,13 @@ private int computeLinePosition(J tree, J targetElement, Cursor cursor) { } private int computeColumnPosition(J tree, J targetElement, Cursor cursor) { - return computePosition(tree, targetElement, cursor, this::calculateColumnOffset); + return computePosition(tree, targetElement, cursor, out -> { + int column = calculateColumnOffset(out); + if (((J.Literal) targetElement).getValueSource().matches("^[+-].*")) { + column++; + } + return column; + }); } private int calculateColumnOffset(String out) { diff --git a/src/test/java/org/checkstyle/autofix/recipe/UpperEllTest.java b/src/test/java/org/checkstyle/autofix/recipe/UpperEllTest.java index 0225e12..59e2453 100644 --- a/src/test/java/org/checkstyle/autofix/recipe/UpperEllTest.java +++ b/src/test/java/org/checkstyle/autofix/recipe/UpperEllTest.java @@ -54,4 +54,9 @@ void complexLongLiterals() throws IOException, CheckstyleException { void stringAndCommentTest() throws IOException, CheckstyleException { testRecipe("upperell", "StringAndComments"); } + + @Test + void symbolicLiteralTest() throws IOException, CheckstyleException { + testRecipe("upperell", "SymbolicLiterals"); + } } diff --git a/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/InputComplexLongLiterals.java b/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/InputComplexLongLiterals.java index 4a10e26..6b4051a 100644 --- a/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/InputComplexLongLiterals.java +++ b/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/InputComplexLongLiterals.java @@ -5,11 +5,11 @@ public class InputComplexLongLiterals { private long multipleUnderscores = 1_234_567_890l; private long maxLong = 9223372036854775807l; - private long minLong = -9223372036854775808l; //false negative + private long minLong = -9223372036854775808l; private Long nullLong = null; private Long simpleLong = 1234l; - private Long negativeLong = -5678l; //false negative + private Long negativeLong = -5678l; private Long underscoreLong = 1_000_000l; Long maxLongObject = 9223372036854775807l; //suppressed violation Long minLongObject = -9223372036854775808l; //suppressed violation diff --git a/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/OutputComplexLongLiterals.java b/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/OutputComplexLongLiterals.java index f40fc75..ebe86a0 100644 --- a/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/OutputComplexLongLiterals.java +++ b/src/test/resources/org/checkstyle/autofix/recipe/upperell/complexlongliterals/OutputComplexLongLiterals.java @@ -5,11 +5,11 @@ public class OutputComplexLongLiterals { private long multipleUnderscores = 1_234_567_890L; private long maxLong = 9223372036854775807L; - private long minLong = -9223372036854775808l; //false negative + private long minLong = -9223372036854775808L; private Long nullLong = null; private Long simpleLong = 1234L; - private Long negativeLong = -5678l; //false negative + private Long negativeLong = -5678L; private Long underscoreLong = 1_000_000L; Long maxLongObject = 9223372036854775807l; //suppressed violation Long minLongObject = -9223372036854775808l; //suppressed violation diff --git a/src/test/resources/org/checkstyle/autofix/recipe/upperell/report.xml b/src/test/resources/org/checkstyle/autofix/recipe/upperell/report.xml index d528c10..61aaebb 100644 --- a/src/test/resources/org/checkstyle/autofix/recipe/upperell/report.xml +++ b/src/test/resources/org/checkstyle/autofix/recipe/upperell/report.xml @@ -107,4 +107,23 @@ message="Use uppercase 'L' for long literals." source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/> + + + + + + + + + diff --git a/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/InputSymbolicLiterals.java b/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/InputSymbolicLiterals.java new file mode 100644 index 0000000..b256b99 --- /dev/null +++ b/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/InputSymbolicLiterals.java @@ -0,0 +1,9 @@ +package org.checkstyle.autofix.recipe.upperell.symbolicliterals; + +public class InputSymbolicLiterals { + private long minLong = -9223372036854775808l; + private Long negativeLong = -5678l; + long a = -0xAl; + long b = +-12l; + long c = +-(-(-(-4l)));; +} diff --git a/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/OutputSymbolicLiterals.java b/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/OutputSymbolicLiterals.java new file mode 100644 index 0000000..2e24b54 --- /dev/null +++ b/src/test/resources/org/checkstyle/autofix/recipe/upperell/symbolicliterals/OutputSymbolicLiterals.java @@ -0,0 +1,9 @@ +package org.checkstyle.autofix.recipe.upperell.symbolicliterals; + +public class OutputSymbolicLiterals { + private long minLong = -9223372036854775808L; + private Long negativeLong = -5678L; + long a = -0xAL; + long b = +-12L; + long c = +-(-(-(-4L)));; +}