protected static boolean hasElseClause(IfStatementTree ifStatement) { StatementTree elseStatement = ifStatement.elseStatement(); while (elseStatement != null && elseStatement.is(Tree.Kind.IF_STATEMENT)) { elseStatement = ((IfStatementTree) elseStatement).elseStatement(); } return elseStatement != null; }
@Override public void visitNode(Tree tree) { IfStatementTree treeIfStmt = (IfStatementTree) tree; StatementTree elseStmt = treeIfStmt.elseStatement(); if (elseStmt != null && elseStmt.is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStmt = (IfStatementTree) elseStmt; if (ifStmt.elseStatement() == null) { reportIssue(treeIfStmt.elseKeyword(), ifStmt.ifKeyword(), "\"if ... else if\" constructs should end with \"else\" clauses."); } } } }
private static StatementTree getIfStatementLastBlock(StatementTree statementTree) { StatementTree block = statementTree; while (block.is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStatementTree = (IfStatementTree) block; StatementTree elseStatement = ifStatementTree.elseStatement(); block = elseStatement == null ? ifStatementTree.thenStatement() : elseStatement; } return block; } }
private static StatementTree getIfStatementLastBlock(StatementTree statementTree) { StatementTree block = statementTree; while (block.is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStatementTree = (IfStatementTree) block; StatementTree elseStatement = ifStatementTree.elseStatement(); block = elseStatement == null ? ifStatementTree.thenStatement() : elseStatement; } return block; } }
@Override public void visitNode(Tree tree) { IfStatementTree treeIfStmt = (IfStatementTree) tree; StatementTree elseStmt = treeIfStmt.elseStatement(); if (elseStmt != null && elseStmt.is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStmt = (IfStatementTree) elseStmt; if (ifStmt.elseStatement() == null) { reportIssue(treeIfStmt.elseKeyword(), ifStmt.ifKeyword(), "\"if ... else if\" constructs should end with \"else\" clauses."); } } } }
public static boolean hasUnreachableCode(Tree booleanExpr, boolean isTrue) { Tree parent = biggestTreeWithSameEvaluation(booleanExpr, isTrue); if (parent.is(Tree.Kind.IF_STATEMENT)) { IfStatementTree ifStatementTree = (IfStatementTree) parent; return !isTrue || ifStatementTree.elseStatement() != null; } // Tree.Kind.DO_STATEMENT not considered, because it is always executed at least once if (parent.is(Tree.Kind.WHILE_STATEMENT) && !isTrue) { return true; } return parent.is(Tree.Kind.CONDITIONAL_EXPRESSION); }
@Override public void visitNode(Tree tree) { IfStatementTree ifStatementTree = (IfStatementTree) tree; if (hasOneReturnBoolean(ifStatementTree.elseStatement()) && hasOneReturnBoolean(ifStatementTree.thenStatement())) { addIssue(tree, "Replace this if-then-else statement by a single return statement."); } }
@Override public void visitIfStatement(IfStatementTree tree) { scan(tree.condition()); scan(tree.thenStatement()); scan(tree.elseStatement()); }
@Override public void visitIfStatement(IfStatementTree tree) { scan(tree.condition()); scan(tree.thenStatement()); scan(tree.elseStatement()); }
private void checkIfStatement(IfStatementTree ifStmt) { checkStatement(ifStmt.thenStatement(), ifStmt); StatementTree elseStmt = ifStmt.elseStatement(); if (elseStmt != null && !elseStmt.is(Tree.Kind.IF_STATEMENT)) { checkStatement(elseStmt, ifStmt.elseKeyword()); } }
@Override public void visitIfStatement(IfStatementTree tree) { scan(tree.condition()); scan(tree.thenStatement()); scan(tree.elseStatement()); }
@Override public void visitIfStatement(IfStatementTree tree) { ExpressionVisitor expressionVisitor = new ExpressionVisitor(parameterSymbol); tree.condition().accept(expressionVisitor); if (expressionVisitor.typeChecked) { typeChecked = true; return; } scan(tree.thenStatement()); scan(tree.elseStatement()); }
private void checkIfStatement(IfStatementTree ifStmt) { checkStatement(ifStmt.ifKeyword(), ifStmt.thenStatement()); StatementTree elseStmt = ifStmt.elseStatement(); if (elseStmt != null && !elseStmt.is(Tree.Kind.IF_STATEMENT)) { checkStatement(ifStmt.elseKeyword(), elseStmt); } }
private static boolean isInsideIfStatementWithNullCheckWithoutElse(MethodInvocationTree mit) { Tree parent = mit.parent(); while (parent != null && !parent.is(Tree.Kind.IF_STATEMENT)) { parent = parent.parent(); } if (parent == null) { return false; } IfStatementTree ifStatementTree = (IfStatementTree) parent; return ifStatementTree.elseStatement() == null && isNullCheck(ExpressionUtils.skipParentheses(ifStatementTree.condition())); }
private static boolean isInsideIfStatementWithNullCheckWithoutElse(MethodInvocationTree mit) { Tree parent = mit.parent(); while (parent != null && !parent.is(Tree.Kind.IF_STATEMENT)) { parent = parent.parent(); } if (parent == null) { return false; } IfStatementTree ifStatementTree = (IfStatementTree) parent; return ifStatementTree.elseStatement() == null && isNullCheck(ExpressionUtils.skipParentheses(ifStatementTree.condition())); }
private void checkIfStatement(IfStatementTree ifStmt) { checkStatement(ifStmt.ifKeyword(), ifStmt.thenStatement()); StatementTree elseStmt = ifStmt.elseStatement(); if (elseStmt != null && !elseStmt.is(Tree.Kind.IF_STATEMENT)) { checkStatement(ifStmt.elseKeyword(), elseStmt); } }
@Override public void visitIfStatement(IfStatementTree tree) { checkBlock(tree.closeParenToken(), tree.thenStatement()); if (tree.elseKeyword() != null) { checkBlock(tree.elseKeyword(), tree.elseStatement()); } super.visitIfStatement(tree); }
private void visit(IfStatementTree tree) { scan(tree.condition()); scan(tree.thenStatement()); StatementTree elseStatementTree = tree.elseStatement(); if (elseStatementTree != null && elseStatementTree.is(Tree.Kind.IF_STATEMENT)) { visit((IfStatementTree) elseStatementTree); } else { scan(elseStatementTree); } }
private void visit(IfStatementTree tree) { scan(tree.condition()); scan(tree.thenStatement()); StatementTree elseStatementTree = tree.elseStatement(); if (elseStatementTree != null && elseStatementTree.is(Tree.Kind.IF_STATEMENT)) { visit((IfStatementTree) elseStatementTree); } else { scan(elseStatementTree); } }
@Override public void visitIfStatement(IfStatementTree tree) { addLine(tree.ifKeyword()); StatementTree thenStatement = tree.thenStatement(); StatementTree elseStatement = tree.elseStatement(); scan(thenStatement); scan(elseStatement); if (elseStatement == null) { addLineOfCloseBrace(tree.ifKeyword(), thenStatement); } else { addLineOfCloseBrace(tree.ifKeyword(), elseStatement); } }