@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { complexity.addComplexityWithoutNesting(tree.elseifToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkStatement(tree.statements().get(0), tree.elseifToken()); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { checkIndentation(tree.elseifToken(), tree.statements()); super.visitElseifClause(tree); }
@Test public void alternative_syntax() throws Exception { ElseifClauseTree tree = parse("elseif ($condition) : $stmt1; $stmt2; ", PHPLexicalGrammar.ALTERNATIVE_ELSEIF_CLAUSE); assertThat(tree.is(Kind.ALTERNATIVE_ELSEIF_CLAUSE)).isTrue(); assertThat(tree.elseifToken().text()).isEqualTo("elseif"); assertThat(expressionToString(tree.condition())).isEqualTo("($condition)"); assertThat(tree.colonToken().text()).isEqualTo(":"); assertThat(tree.statements()).hasSize(2); }
/** * Control structures open curly brace */ @Override public void visitElseifClause(ElseifClauseTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitElseifClause(tree); }
private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
@Override public void visitIfStatement(IfStatementTree tree) { super.visitIfStatement(tree); List<ElseifClauseTree> elseifClauses = tree.elseifClauses(); if (!elseifClauses.isEmpty() && tree.elseClause() == null) { ElseifClauseTree lastElseIf = elseifClauses.get(elseifClauses.size() - 1); context().newIssue(this, lastElseIf.elseifToken(), MESSAGE); } }
@Override public void visitIfStatement(IfStatementTree tree) { if (tree.is(Kind.IF_STATEMENT) && !checkedIfStatements.contains(tree)) { List<ExpressionTree> conditionsList = new ArrayList<>(); for (Tree clause : getClauses(tree)) { if (clause.is(Kind.IF_STATEMENT)) { conditionsList.add(((IfStatementTree) clause).condition()); } else if (clause.is(Kind.ELSEIF_CLAUSE)) { conditionsList.add(((ElseifClauseTree) clause).condition()); } } checkForEquality(conditionsList, "branch"); } super.visitIfStatement(tree); }
@Test public void alternative_syntax_with_else() throws Exception { IfStatementTree tree = parse("if ($a) : elseif ($a) : else : {} {} endif;", PHPLexicalGrammar.IF_STATEMENT); assertThat(tree.is(Kind.ALTERNATIVE_IF_STATEMENT)).isTrue(); assertThat(tree.colonToken()).isNotNull(); assertThat(tree.statements()).hasSize(0); assertThat(tree.elseClause()).isNotNull(); assertThat(tree.elseifClauses()).hasSize(1); assertThat(tree.elseifClauses().get(0).is(Kind.ALTERNATIVE_ELSEIF_CLAUSE)).isTrue(); assertThat(tree.endifToken()).isNotNull(); assertThat(tree.eosToken().text()).isEqualTo(";"); }
@Test public void standard_syntax() throws Exception { ElseifClauseTree tree = parse("elseif ($condition) {}", PHPLexicalGrammar.ELSEIF_CLAUSE); assertThat(tree.is(Kind.ELSEIF_CLAUSE)).isTrue(); assertThat(tree.elseifToken().text()).isEqualTo("elseif"); assertThat(expressionToString(tree.condition())).isEqualTo("($condition)"); assertThat(tree.statements()).hasSize(1); }
private PhpCfgBlock buildElseIfStatement(ElseifClauseTree tree, PhpCfgBlock ifSuccessor, PhpCfgBlock nextCondition) { PhpCfgBlock thenBlock = buildSubFlow(tree.statements(), ifSuccessor); PhpCfgBranchingBlock conditionBlock = createBranchingBlock(tree, thenBlock, nextCondition); conditionBlock.addElement(tree.condition().expression()); return conditionBlock; }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkStatement(tree.statements().get(0), tree.elseifToken()); } }
private static StatementTree getConditionalStatement(Tree tree) { List<StatementTree> statementTrees; if (tree.is(Tree.Kind.IF_STATEMENT)) { statementTrees = ((IfStatementTree) tree).statements(); } else if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { statementTrees = ((ElseifClauseTree) tree).statements(); } else { statementTrees = ((ElseClauseTree) tree).statements(); } return statementTrees.get(0); }
@Override public void visitElseifClause(ElseifClauseTree tree) { checkIndentation(tree.elseifToken(), tree.statements()); super.visitElseifClause(tree); }
@Override public void visitIfStatement(IfStatementTree tree) { super.visitIfStatement(tree); List<ElseifClauseTree> elseifClauses = tree.elseifClauses(); if (!elseifClauses.isEmpty() && tree.elseClause() == null) { ElseifClauseTree lastElseIf = elseifClauses.get(elseifClauses.size() - 1); context().newIssue(this, lastElseIf.elseifToken(), MESSAGE); } }
@Override public void visitIfStatement(IfStatementTree tree) { if (tree.is(Kind.IF_STATEMENT) && !checkedIfStatements.contains(tree)) { List<ExpressionTree> conditionsList = new ArrayList<>(); for (Tree clause : getClauses(tree)) { if (clause.is(Kind.IF_STATEMENT)) { conditionsList.add(((IfStatementTree) clause).condition()); } else if (clause.is(Kind.ELSEIF_CLAUSE)) { conditionsList.add(((ElseifClauseTree) clause).condition()); } } checkForEquality(conditionsList, "branch"); } super.visitIfStatement(tree); }
@Override public void visitElseifClause(ElseifClauseTree tree) { super.visitElseifClause(tree); if (tree.is(Tree.Kind.ELSEIF_CLAUSE)) { checkBlock(tree.statements().get(0), getLastToken(tree.condition())); } }
@Override public void visitElseifClause(ElseifClauseTree tree) { complexity.addComplexityWithoutNesting(tree.elseifToken()); visit(tree.condition()); visitWithNesting(tree.statements()); }
/** * Control structures open curly brace */ @Override public void visitElseifClause(ElseifClauseTree tree) { checkControlStructureOpenCurly(tree.condition().closeParenthesis(), getOpenCurlyIfBlock(tree.statements())); super.visitElseifClause(tree); }