Skip to content

Commit

Permalink
Issue checkstyle#12345: fix NoWhitespaceAfterCheck false positive
Browse files Browse the repository at this point in the history
  • Loading branch information
strkkk committed Nov 5, 2022
1 parent b1c4475 commit bb71eb8
Show file tree
Hide file tree
Showing 2 changed files with 29 additions and 6 deletions.
Expand Up @@ -506,13 +506,12 @@ private static DetailAST getPreviousNodeWithParentOfTypeAst(DetailAST ast, Detai
final DetailAST previousElement;
final DetailAST ident = getIdentLastToken(parent.getParent());
final DetailAST lastTypeNode = getTypeLastNode(ast);
final boolean isTypeCast = parent.getParent().getType() == TokenTypes.TYPECAST;
// sometimes there are ident-less sentences
// i.e. "(Object[]) null", but in casual case should be
// checked whether ident or lastTypeNode has preceding position
// determining if it is java style or C style

if (ident == null || isTypeCast || ident.getLineNo() > ast.getLineNo()) {
if (ident == null || ident.getLineNo() > ast.getLineNo()) {
previousElement = lastTypeNode;
}
else if (ident.getLineNo() < ast.getLineNo()) {
Expand Down Expand Up @@ -570,10 +569,17 @@ private static DetailAST getIdentLastToken(DetailAST ast) {
* @return dot preceding the left bracket
*/
private static DetailAST getPrecedingDot(DetailAST leftBracket) {
final DetailAST referencedClassDot =
leftBracket.getParent().findFirstToken(TokenTypes.DOT);
final DetailAST referencedMemberDot = leftBracket.findFirstToken(TokenTypes.DOT);
return Optional.ofNullable(referencedMemberDot).orElse(referencedClassDot);

DetailAST result = null;
if (referencedMemberDot == null) {
final DetailAST parent = leftBracket.getParent();
if (parent.getType() != TokenTypes.ASSIGN) {
result = parent.findFirstToken(TokenTypes.DOT);
}
}
else {
result = referencedMemberDot;
}
return result;
}
}
Expand Up @@ -308,3 +308,20 @@ Object foo() {
int someStuff8
[]; // violation
}

class QualifiedAssignment {

Object o;
static Object o1;

void some() {
Object oo = new Object[4];
Object[] oo2 = new Object[4];
this.o = ((Object[]) oo)[1];
this.o = ((java.lang.Object[]) oo)[1];
this.o = oo2[1];
QualifiedAssignment.o1 = ((Object[]) oo)[1];
QualifiedAssignment.o1 = ((java.lang.Object[]) oo)[1];
QualifiedAssignment.o1 = oo2[1];
}
}

0 comments on commit bb71eb8

Please sign in to comment.