Issue #1289: 'NoWhitespaceAfterCheck' refactored, UT coverage improved

This commit is contained in:
Ruslan Diachenko 2015-07-20 23:38:32 +01:00
parent 39efe0e886
commit b9936d9735
4 changed files with 23 additions and 15 deletions

View File

@ -1155,7 +1155,6 @@
<regex><pattern>.*.checks.regexp.SinglelineDetector</pattern><branchRate>93</branchRate><lineRate>96</lineRate></regex>
<regex><pattern>.*.checks.whitespace.AbstractParenPadCheck</pattern><branchRate>88</branchRate><lineRate>100</lineRate></regex>
<regex><pattern>.*.checks.whitespace.NoWhitespaceAfterCheck</pattern><branchRate>94</branchRate><lineRate>98</lineRate></regex>
<regex><pattern>.*.filters.SuppressionCommentFilter</pattern><branchRate>83</branchRate><lineRate>93</lineRate></regex>
<regex><pattern>.*.filters.SuppressionCommentFilter\$Tag</pattern><branchRate>96</branchRate><lineRate>94</lineRate></regex>

View File

@ -106,12 +106,7 @@ public class NoWhitespaceAfterCheck extends Check {
@Override
public void visitToken(DetailAST ast) {
DetailAST astNode = ast;
if (ast.getType() == TokenTypes.ARRAY_DECLARATOR
|| ast.getType() == TokenTypes.TYPECAST) {
astNode = getPreceded(ast);
}
final DetailAST astNode = getPreceded(ast);
final String line = getLine(ast.getLineNo() - 1);
final int after = getPositionAfter(astNode);
@ -124,21 +119,21 @@ public class NoWhitespaceAfterCheck extends Check {
/**
* Gets possible place where redundant whitespace could be.
* @param arrayOrTypeCast {@link TokenTypes#ARRAY_DECLARATOR ARRAY_DECLARATOR}
* or {@link TokenTypes#TYPECAST TYPECAST}.
* @param ast Node representing token.
* @return possible place of redundant whitespace.
*/
private static DetailAST getPreceded(DetailAST arrayOrTypeCast) {
DetailAST preceded = arrayOrTypeCast;
switch (arrayOrTypeCast.getType()) {
private static DetailAST getPreceded(DetailAST ast) {
DetailAST preceded;
switch (ast.getType()) {
case TokenTypes.TYPECAST:
preceded = arrayOrTypeCast.findFirstToken(TokenTypes.RPAREN);
preceded = ast.findFirstToken(TokenTypes.RPAREN);
break;
case TokenTypes.ARRAY_DECLARATOR:
preceded = getArrayTypeOrIdentifier(arrayOrTypeCast);
preceded = getArrayTypeOrIdentifier(ast);
break;
default:
throw new IllegalStateException(arrayOrTypeCast.toString());
preceded = ast;
}
return preceded;
}

View File

@ -44,6 +44,8 @@ public class ParenPadCheckTest
"232:27: " + getCheckMessage(WS_PRECEDED, ")"),
"241:24: " + getCheckMessage(WS_FOLLOWED, "("),
"241:30: " + getCheckMessage(WS_PRECEDED, ")"),
"276:18: " + getCheckMessage(WS_FOLLOWED, "("),
"276:23: " + getCheckMessage(WS_PRECEDED, ")"),
};
verify(checkConfig, getPath("InputWhitespace.java"), expected);
}
@ -82,6 +84,12 @@ public class ParenPadCheckTest
"235:39: " + getCheckMessage(WS_NOT_PRECEDED, ")"),
"252:21: " + getCheckMessage(WS_NOT_FOLLOWED, "("),
"252:93: " + getCheckMessage(WS_NOT_PRECEDED, ")"),
"272:26: " + getCheckMessage(WS_NOT_FOLLOWED, "("),
"272:36: " + getCheckMessage(WS_NOT_PRECEDED, ")"),
"274:29: " + getCheckMessage(WS_NOT_FOLLOWED, "("),
"274:42: " + getCheckMessage(WS_NOT_PRECEDED, ")"),
"275:18: " + getCheckMessage(WS_NOT_FOLLOWED, "("),
"275:33: " + getCheckMessage(WS_NOT_PRECEDED, ")"),
};
verify(checkConfig, getPath("InputWhitespace.java"), expected);
}

View File

@ -269,4 +269,10 @@ class SpecialCasesInForLoop
public void testNullSemi() {
return ;
}
public void register(Object obj) { }
public void doSomething(String args[]) {
register(boolean[].class);
register( args );
}
}