Skip to content

Commit 352c872

Browse files
committed
Issue #55: updated computeColumnPosition
1 parent 86d6fd4 commit 352c872

File tree

5 files changed

+83
-36
lines changed

5 files changed

+83
-36
lines changed

src/main/java/org/checkstyle/autofix/recipe/UpperEll.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,13 @@ private int computeLinePosition(J tree, J targetElement, Cursor cursor) {
166166
}
167167

168168
private int computeColumnPosition(J tree, J targetElement, Cursor cursor) {
169-
return computePosition(tree, targetElement, cursor, this::calculateColumnOffset);
169+
return computePosition(tree, targetElement, cursor, out -> {
170+
int column = calculateColumnOffset(out);
171+
if (((J.Literal) targetElement).getValueSource().matches("^[+-].*")) {
172+
column++;
173+
}
174+
return column;
175+
});
170176
}
171177

172178
private int calculateColumnOffset(String out) {
@@ -176,10 +182,9 @@ private int calculateColumnOffset(String out) {
176182
result = out.length();
177183
}
178184
else {
179-
result = out.length() - lineBreakIndex - 1;
185+
result = out.length() - lineBreakIndex;
180186
}
181187
return result;
182188
}
183-
184189
}
185190
}

src/test/java/org/checkstyle/autofix/recipe/UpperEllTest.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -54,4 +54,9 @@ void complexLongLiterals() throws IOException, CheckstyleException {
5454
void stringAndCommentTest() throws IOException, CheckstyleException {
5555
testRecipe("upperell", "StringAndComments");
5656
}
57+
58+
@Test
59+
void symbolicLiteralTest() throws IOException, CheckstyleException {
60+
testRecipe("upperell", "SymbolicLiterals");
61+
}
5762
}
Lines changed: 52 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -1,110 +1,129 @@
11
<?xml version="1.0" encoding="UTF-8"?>
22
<checkstyle version="10.12.3">
33
<file name="org/checkstyle/autofix/recipe/upperell/stringandcomments/InputStringAndComments.java">
4-
<error line="11" column="30" severity="error"
4+
<error line="11" column="31" severity="error"
55
message="Use uppercase 'L' for long literals."
66
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
7-
<error line="18" column="21" severity="error"
7+
<error line="18" column="22" severity="error"
88
message="Use uppercase 'L' for long literals."
99
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
1010
</file>
1111

1212
<file name="org/checkstyle/autofix/recipe/upperell/hexoctalliteral/InputHexOctalLiteral.java">
13-
<error line="4" column="28" severity="error"
13+
<error line="4" column="29" severity="error"
1414
message="Use uppercase 'L' for long literals."
1515
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
16-
<error line="5" column="28" severity="error"
16+
<error line="5" column="29" severity="error"
1717
message="Use uppercase 'L' for long literals."
1818
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
19-
<error line="6" column="25" severity="error"
19+
<error line="6" column="26" severity="error"
2020
message="Use uppercase 'L' for long literals."
2121
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
22-
<error line="7" column="26" severity="error"
22+
<error line="7" column="27" severity="error"
2323
message="Use uppercase 'L' for long literals."
2424
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
25-
<error line="8" column="27" severity="error"
25+
<error line="8" column="28" severity="error"
2626
message="Use uppercase 'L' for long literals."
2727
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
28-
<error line="11" column="25" severity="error"
28+
<error line="11" column="26" severity="error"
2929
message="Use uppercase 'L' for long literals."
3030
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
31-
<error line="12" column="27" severity="error"
31+
<error line="12" column="28" severity="error"
3232
message="Use uppercase 'L' for long literals."
3333
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
34-
<error line="13" column="28" severity="error"
34+
<error line="13" column="29" severity="error"
3535
message="Use uppercase 'L' for long literals."
3636
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
3737
</file>
3838

3939
<file name="org/checkstyle/autofix/recipe/upperell/complexlongliterals/InputComplexLongLiterals.java">
40-
<error line="4" column="35" severity="error"
40+
<error line="4" column="36" severity="error"
4141
message="Use uppercase 'L' for long literals."
4242
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
43-
<error line="5" column="39" severity="error"
43+
<error line="5" column="40" severity="error"
4444
message="Use uppercase 'L' for long literals."
4545
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
46-
<error line="7" column="27" severity="error"
46+
<error line="7" column="28" severity="error"
4747
message="Use uppercase 'L' for long literals."
4848
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
49-
<error line="8" column="27" severity="error"
49+
<error line="8" column="29" severity="error"
5050
message="Use uppercase 'L' for long literals."
5151
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
52-
<error line="11" column="30" severity="error"
52+
<error line="11" column="31" severity="error"
5353
message="Use uppercase 'L' for long literals."
5454
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
55-
<error line="12" column="32" severity="error"
55+
<error line="12" column="34" severity="error"
5656
message="Use uppercase 'L' for long literals."
5757
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
58-
<error line="13" column="34" severity="error"
58+
<error line="13" column="35" severity="error"
5959
message="Use uppercase 'L' for long literals."
6060
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
61-
<error line="18" column="33" severity="error"
61+
<error line="18" column="34" severity="error"
6262
message="Use uppercase 'L' for long literals."
6363
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
64-
<error line="22" column="57" severity="error"
64+
<error line="22" column="58" severity="error"
6565
message="Use uppercase 'L' for long literals."
6666
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
67-
<error line="23" column="32" severity="error"
67+
<error line="23" column="33" severity="error"
6868
message="Use uppercase 'L' for long literals."
6969
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
70-
<error line="23" column="36" severity="error"
70+
<error line="23" column="37" severity="error"
7171
message="Use uppercase 'L' for long literals."
7272
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
73-
<error line="23" column="40" severity="error"
73+
<error line="23" column="41" severity="error"
7474
message="Use uppercase 'L' for long literals."
7575
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
76-
<error line="27" column="39" severity="error"
76+
<error line="27" column="40" severity="error"
7777
message="Use uppercase 'L' for long literals."
7878
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
79-
<error line="27" column="45" severity="error"
79+
<error line="27" column="46" severity="error"
8080
message="Use uppercase 'L' for long literals."
8181
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
82-
<error line="27" column="51" severity="error"
82+
<error line="27" column="52" severity="error"
8383
message="Use uppercase 'L' for long literals."
8484
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
85-
<error line="32" column="17" severity="error"
85+
<error line="32" column="18" severity="error"
8686
message="Use uppercase 'L' for long literals."
8787
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
88-
<error line="33" column="30" severity="error"
88+
<error line="33" column="31" severity="error"
8989
message="Use uppercase 'L' for long literals."
9090
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
91-
<error line="34" column="26" severity="error"
91+
<error line="34" column="27" severity="error"
9292
message="Use uppercase 'L' for long literals."
9393
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
94-
<error line="36" column="45" severity="error"
94+
<error line="36" column="46" severity="error"
9595
message="Use uppercase 'L' for long literals."
9696
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
97-
<error line="37" column="41" severity="error"
97+
<error line="37" column="42" severity="error"
9898
message="Use uppercase 'L' for long literals."
9999
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
100-
<error line="38" column="33" severity="error"
100+
<error line="38" column="34" severity="error"
101101
message="Use uppercase 'L' for long literals."
102102
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
103-
<error line="43" column="19" severity="error"
103+
<error line="43" column="20" severity="error"
104104
message="Use uppercase 'L' for long literals."
105105
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
106-
<error line="45" column="23" severity="error"
106+
<error line="45" column="24" severity="error"
107107
message="Use uppercase 'L' for long literals."
108108
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
109109
</file>
110+
111+
<file name="org/checkstyle/autofix/recipe/upperell/symbolicliterals/InputSymbolicLiterals.java">
112+
<error line="4" column="29" severity="error"
113+
message="Use uppercase 'L' for long literals."
114+
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
115+
<error line="5" column="34" severity="error"
116+
message="Use uppercase 'L' for long literals."
117+
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
118+
<error line="6" column="15" severity="error"
119+
message="Use uppercase 'L' for long literals."
120+
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
121+
<error line="7" column="16" severity="error"
122+
message="Use uppercase 'L' for long literals."
123+
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
124+
<error line="8" column="22" severity="error"
125+
message="Use uppercase 'L' for long literals."
126+
source="com.puppycrawl.tools.checkstyle.checks.UpperEllCheck"/>
127+
</file>
128+
110129
</checkstyle>
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.checkstyle.autofix.recipe.upperell.symbolicliterals;
2+
3+
public class InputSymbolicLiterals {
4+
private long minLong = -9223372036854775808l;
5+
private Long negativeLong = -5678l;
6+
long a = -0xAl;
7+
long b = +-12l;
8+
long c = +-(-(-(-4l)));;
9+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
package org.checkstyle.autofix.recipe.upperell.symbolicliterals;
2+
3+
public class OutputSymbolicLiterals {
4+
private long minLong = -9223372036854775808L;
5+
private Long negativeLong = -5678L;
6+
long a = -0xAL;
7+
long b = +-12L;
8+
long c = +-(-(-(-4L)));;
9+
}

0 commit comments

Comments
 (0)