-
-
Notifications
You must be signed in to change notification settings - Fork 3.8k
Description
I have read check documentation: https://checkstyle.org/checks/misc/indentation.html
I have downloaded the latest checkstyle from: https://checkstyle.org/cmdline.html#Download_and_Run
I have executed the cli and showed it below, as cli describes the problem better than 1,000 words
Detected at #14294
In google_checks.xml, Indentation module gives false-positive error for following type of blocks:
{
int x = 99;
}
Example:
/** Test... */
public class Test {
private static void indentationIssue(int condition) {
{ // line 4, false-positive
System.out.println("True");
} // line 6, false-positive
}
{ // good, no violation
System.out.println("False");
} // good, no violation
{ // line 13, expected
System.out.println("False");
} // line 15, expected
class Inner {
void test() {
{ // line 19, false-positive
System.out.println("True");
} // line 21, false-positive
}
}
}
$ java -jar .\checkstyle-10.18.2-all.jar -c .\google_checks.xml .\Test.java
Starting audit...
[WARN] C:\checkstyle testing\.\Test.java:4:5: 'block lcurly' has incorrect indentation level 4, expected level should be 6. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:6:5: 'block rcurly' has incorrect indentation level 4, expected level should be 6. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:13:5: 'block lcurly' has incorrect indentation level 4, expected level should be 2. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:14:7: 'block' child has incorrect indentation level 6, expected level should be 4. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:15:5: 'block rcurly' has incorrect indentation level 4, expected level should be 2. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:19:7: 'block lcurly' has incorrect indentation level 6, expected level should be 8. [Indentation]
[WARN] C:\checkstyle testing\.\Test.java:21:7: 'block rcurly' has incorrect indentation level 6, expected level should be 8. [Indentation]
Audit done.
@romani suggested to use suppression to suppress these false-positives until we find a way to fix it at: #14294 (comment)
The suppression is:
<module name="SuppressionXpathSingleFilter">
<property name="checks" value="Indentation"/>
<property name="query" value="//SLIST/SLIST"/>
</module>
<module name="SuppressionXpathSingleFilter">
<property name="checks" value="Indentation"/>
<property name="query" value="//SLIST/SLIST/RCURLY"/>
</module>
<module name="Indentation">
<property name="basicOffset" value="2"/>
<property name="braceAdjustment" value="2"/>
<property name="caseIndent" value="2"/>
<property name="throwsIndent" value="4"/>
<property name="lineWrappingIndentation" value="4"/>
<property name="arrayInitIndent" value="2"/>
</module>
Adding this suppression will suppress all indentation violations for above mentioned type of blocks whether they're correct or not but we need to use it till we find a fix.
As part of this issue, we need to find a way to fix this false-positive and remove the suppression.