@Override public void visitForStatement(ForStatementTree tree) { SyntaxToken forKeyword = tree.forKeyword(); checkNesting(forKeyword); nestingLevel.push(forKeyword); super.visitForStatement(tree); nestingLevel.pop(); }
@Override public void visitForStatement(ForStatementTree tree) { SyntaxToken forKeyword = tree.forKeyword(); checkNesting(forKeyword); nestingLevel.push(forKeyword); super.visitForStatement(tree); nestingLevel.pop(); }
@Override public void visitForStatement(ForStatementTree tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForStatement(tree); nesting--; }
@Override public void visitForStatement(ForStatementTree tree) { increaseComplexityByNesting(tree.forKeyword()); nesting++; super.visitForStatement(tree); nesting--; }
@Override public void visitForStatement(ForStatementTree tree) { super.visitForStatement(tree); checkForReport(tree.statement(), tree.forKeyword(), tree.closeParenToken(), tree.forKeyword().text()); }
@Override public void visitForStatement(ForStatementTree tree) { super.visitForStatement(tree); checkForReport(tree.statement(), tree.forKeyword(), tree.closeParenToken(), tree.forKeyword().text()); }
@Override public void visitForStatement(ForStatementTree tree) { enterLoop(); super.visitForStatement(tree); leaveLoop(tree.forKeyword()); }
@Override public void visitForStatement(ForStatementTree tree) { // do not scan the initializer, updater and condition addLines(tree.forKeyword(), tree.closeParenToken()); addLineOfCloseBrace(tree.forKeyword(), tree.statement()); scan(tree.statement()); }
@Override public void visitForStatement(ForStatementTree tree) { enterLoop(); super.visitForStatement(tree); leaveLoop(tree.forKeyword()); }
@Override public void visitForStatement(ForStatementTree tree) { // do not scan the initializer, updater and condition addLines(tree.forKeyword(), tree.closeParenToken()); addLineOfCloseBrace(tree.forKeyword(), tree.statement()); scan(tree.statement()); }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.update().isEmpty() || forStatementTree.condition() == null) { return; } Collection<Symbol> symbolsFromConditionsNotUpdated = symbolsFromConditionsNotUpdated(forStatementTree); if (!symbolsFromConditionsNotUpdated.isEmpty()) { Map<Symbol, Tree> updatesInBody = singleUpdatesInBody(forStatementTree.statement(), symbolsFromConditionsNotUpdated); if (!updatesInBody.isEmpty()) { reportIssue(forStatementTree.forKeyword(), getMessage(updatesInBody.keySet()), getSecondaries(updatesInBody.values()), null); } } }
@Override public void visitNode(Tree tree) { if (!hasSemantic()) { return; } ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.update().isEmpty() || forStatementTree.condition() == null) { return; } Collection<Symbol> symbolsFromConditionsNotUpdated = symbolsFromConditionsNotUpdated(forStatementTree); if (!symbolsFromConditionsNotUpdated.isEmpty()) { Map<Symbol, Tree> updatesInBody = singleUpdatesInBody(forStatementTree.statement(), symbolsFromConditionsNotUpdated); if (!updatesInBody.isEmpty()) { reportIssue(forStatementTree.forKeyword(), getMessage(updatesInBody.keySet()), getSecondaries(updatesInBody.values()), null); } } }
@Override public void visitNode(Tree tree) { ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.initializer().isEmpty() && forStatementTree.update().isEmpty() && forStatementTree.condition() != null) { context.reportIssue(this, forStatementTree.forKeyword(), "Replace this \"for\" loop with a \"while\" loop."); } } }
@Override public void visitNode(Tree tree) { ForStatementTree forStatementTree = (ForStatementTree) tree; if (forStatementTree.initializer().isEmpty() && forStatementTree.update().isEmpty() && forStatementTree.condition() != null) { context.reportIssue(this, forStatementTree.forKeyword(), "Replace this \"for\" loop with a \"while\" loop."); } } }
@Override public void visitForStatement(ForStatementTree tree) { addKind(tree.forKeyword(), UastNode.Kind.FOR_KEYWORD); addKind(tree.initializer(), UastNode.Kind.FOR_INIT); addKind(tree.update(), UastNode.Kind.FOR_UPDATE); addKind(tree.statement(), UastNode.Kind.BODY); super.visitForStatement(tree); }
@Override public void visitNode(Tree tree) { switch (tree.kind()) { case WHILE_STATEMENT: WhileStatementTree whileStatementTree = (WhileStatementTree) tree; checkStatement(whileStatementTree.whileKeyword(), whileStatementTree.statement()); break; case DO_STATEMENT: DoWhileStatementTree doWhileStatementTree = (DoWhileStatementTree) tree; checkStatement(doWhileStatementTree.doKeyword(), doWhileStatementTree.statement()); break; case FOR_STATEMENT: ForStatementTree forStatementTree = (ForStatementTree) tree; checkStatement(forStatementTree.forKeyword(), forStatementTree.statement()); break; case FOR_EACH_STATEMENT: ForEachStatement forEachStatement = (ForEachStatement) tree; checkStatement(forEachStatement.forKeyword(), forEachStatement.statement()); break; case IF_STATEMENT: checkIfStatement((IfStatementTree) tree); break; default: break; } }
@Override public void visitNode(Tree tree) { switch (tree.kind()) { case WHILE_STATEMENT: WhileStatementTree whileStatementTree = (WhileStatementTree) tree; checkStatement(whileStatementTree.whileKeyword(), whileStatementTree.statement()); break; case DO_STATEMENT: DoWhileStatementTree doWhileStatementTree = (DoWhileStatementTree) tree; checkStatement(doWhileStatementTree.doKeyword(), doWhileStatementTree.statement()); break; case FOR_STATEMENT: ForStatementTree forStatementTree = (ForStatementTree) tree; checkStatement(forStatementTree.forKeyword(), forStatementTree.statement()); break; case FOR_EACH_STATEMENT: ForEachStatement forEachStatement = (ForEachStatement) tree; checkStatement(forEachStatement.forKeyword(), forEachStatement.statement()); break; case IF_STATEMENT: checkIfStatement((IfStatementTree) tree); break; default: break; } }
@Override public void visitNode(Tree tree) { switch (tree.kind()) { case WHILE_STATEMENT: WhileStatementTree whileStatementTree = (WhileStatementTree) tree; checkStatement(whileStatementTree.whileKeyword(), whileStatementTree.statement()); break; case DO_STATEMENT: DoWhileStatementTree doWhileStatementTree = (DoWhileStatementTree) tree; checkStatement(doWhileStatementTree.doKeyword(), doWhileStatementTree.statement()); break; case FOR_STATEMENT: ForStatementTree forStatementTree = (ForStatementTree) tree; checkStatement(forStatementTree.forKeyword(), forStatementTree.statement()); break; case FOR_EACH_STATEMENT: ForEachStatement forEachStatement = (ForEachStatement) tree; checkStatement(forEachStatement.forKeyword(), forEachStatement.statement()); break; case IF_STATEMENT: checkIfStatement((IfStatementTree) tree); break; default: break; } }