@Override public void visitElseClause(ElseClauseTree tree) { if (tree.statement().is(Kind.IF_STATEMENT)) { checkIndentation(tree.elseKeyword(), ((IfStatementTree) tree.statement()).statement()); } else { checkIndentation(tree.elseKeyword(), tree.statement()); } super.visitElseClause(tree); }
private void checkConditional(Tree parent, SyntaxToken openCurly) { if (parent.is(Kind.IF_STATEMENT)) { issueIfLineMismatch(openCurly, ((IfStatementTree) parent).closeParenthesisToken()); } if (parent.is(Kind.ELSE_CLAUSE)) { issueIfLineMismatch(openCurly, ((ElseClauseTree) parent).elseKeyword()); } }
@Override public void visitElseClause(ElseClauseTree tree) { if (tree.statement().is(Kind.IF_STATEMENT)) { IfStatementTreeImpl ifStmt = (IfStatementTreeImpl) tree.statement(); if (!ifStmt.hasElse()) { addIssue(new PreciseIssue(this, new IssueLocation(tree.elseKeyword(), ifStmt.ifKeyword(), MESSAGE))); } } super.visitElseClause(tree); }
@Override public void visitElseClause(ElseClauseTree tree) { scan(tree.statement()); }
private List<Tree> collectBranches(IfStatementTree ifStatement) { List<Tree> branches = new ArrayList<>(); branches.add(ifStatement.statement()); ElseClauseTree elseClause = ifStatement.elseClause(); while (elseClause != null) { if (elseClause.statement().is(Kind.IF_STATEMENT)) { IfStatementTree chainedIfStatement = (IfStatementTree) elseClause.statement(); chainedIfStatements.add(chainedIfStatement); branches.add(chainedIfStatement.statement()); elseClause = chainedIfStatement.elseClause(); } else { branches.add(elseClause.statement()); elseClause = null; } } return branches; }
/** * Same as <code>visitIfStatement</code>. */ @Override public void visitElseClause(ElseClauseTree tree) { except(tree.statement()); super.visitElseClause(tree); }
@Override public void visitElseClause(ElseClauseTree tree) { if (tree.statement().is(Kind.IF_STATEMENT)) { IfStatementTreeImpl ifStmt = (IfStatementTreeImpl) tree.statement(); if (!ifStmt.hasElse()) { getContext().addIssue(this, ifStmt, "Add the missing \"else\" clause."); } } super.visitElseClause(tree); }
private static boolean allBranchesPresent(IfStatementTree tree) { IfStatementTree lastIfStatement = tree; while (lastIfStatement.elseClause() != null) { StatementTree elseStatement = lastIfStatement.elseClause().statement(); if (elseStatement.is(Kind.IF_STATEMENT)) { lastIfStatement = (IfStatementTree) elseStatement; } else { break; } } return lastIfStatement.elseClause() != null; }
private void visitIf(IfStatementTree tree) { scan(tree.condition()); scan(tree.statement()); ElseClauseTree elseClauseTree = tree.elseClause(); if (tree.elseClause() != null && elseClauseTree.statement().is(Kind.IF_STATEMENT)) { visitIf((IfStatementTreeImpl) tree.elseClause().statement()); } else { scan(tree.elseClause()); } }
@Override public void visitIfStatement(IfStatementTree tree) { ExpressionTree condition = tree.condition(); ElseClauseTree elseClause = tree.elseClause(); while (elseClause != null && elseClause.statement().is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStatement = (IfStatementTree) elseClause.statement(); if (SyntacticEquivalence.areEquivalent(condition, ifStatement.condition())) { getContext().addIssue(this, ifStatement.condition(), "This branch duplicates the one on line " + ((AstNode) condition).getTokenLine() + "."); } elseClause = ifStatement.elseClause(); } super.visitIfStatement(tree); }
@Override public void visitNode(AstNode astNode) { IfStatementTreeImpl ifStatement = (IfStatementTreeImpl) astNode; if (isNotIfElse(ifStatement) && ifStatement.hasElse() && returnsBoolean((AstNode) ifStatement.elseClause().statement()) && returnsBoolean((AstNode) ifStatement.statement())) { getContext().createLineViolation(this, "Replace this if-then-else statement by a single return statement.", astNode); } }