private static boolean isNontrivial(List<StatementTree> statements) { return statements.stream() .flatMap(statement -> statement.is(Kind.BLOCK) ? ((BlockTree) statement).statements().stream() : Stream.of(statement)) .mapToInt(LineVisitor::linesOfCode) .sum() > 1; }
private void checkBlock(Tree body, SyntaxToken prevToken) { if (body.is(Kind.BLOCK)) { BlockTree blockTree = (BlockTree)body; SyntaxToken nextToken = getFirstToken(blockTree.statements()); if (nextToken == null) { nextToken = blockTree.closeCurlyBraceToken(); } checkOpenCurlyBrace(blockTree.openCurlyBraceToken(), blockTree.closeCurlyBraceToken(), prevToken, nextToken); } }
private void checkBlock(Tree body, SyntaxToken prevToken) { if (body.is(Kind.BLOCK)) { BlockTree blockTree = (BlockTree)body; checkOpenCurlyBrace(blockTree.openCurlyBraceToken(), blockTree.closeCurlyBraceToken(), prevToken); } }
@Override public void visitBlock(BlockTree tree) { super.visitBlock(tree); if (isEmpty(tree.statements(), tree.closeCurlyBraceToken())) { context().newIssue(this, tree, MESSAGE); } }
@Test public void empty() throws Exception { BlockTree tree = parse("{}", PHPLexicalGrammar.BLOCK); assertThat(tree.is(Kind.BLOCK)).isTrue(); assertThat(tree.statements()).isEmpty(); }
@Nullable private static SyntaxToken getOpenCurlyIfBlock(List<StatementTree> statements) { if (!statements.isEmpty()) { StatementTree firstStmt = statements.get(0); return firstStmt.is(Tree.Kind.BLOCK) ? ((BlockTree) firstStmt).openCurlyBraceToken() : null; } return null; }
private void setPreviousToken(Tree tree) { StatementTree statementTree = getConditionalStatement(tree); if (statementTree.is(Tree.Kind.BLOCK)) { BlockTree blockTree = (BlockTree) statementTree; if (isMultilineBlock(blockTree)) { previousClosingBracketToken = blockTree.closeCurlyBraceToken(); return; } } previousClosingBracketToken = null; }
@Override public void visitBlock(BlockTree tree) { super.visitBlock(tree); if (isEmpty(tree.statements(), tree.closeCurlyBraceToken())) { context().newIssue(this, tree, MESSAGE); } }
private void checkBlock(Tree body, SyntaxToken prevToken) { if (body.is(Kind.BLOCK)) { BlockTree blockTree = (BlockTree)body; checkOpenCurlyBrace(blockTree.openCurlyBraceToken(), blockTree.closeCurlyBraceToken(), prevToken); } }
@Nullable private static SyntaxToken getOpenCurlyIfBlock(List<StatementTree> statements) { if (!statements.isEmpty()) { StatementTree firstStmt = statements.get(0); return firstStmt.is(Tree.Kind.BLOCK) ? ((BlockTree) firstStmt).openCurlyBraceToken() : null; } return null; }
private void setPreviousToken(Tree tree) { StatementTree statementTree = getConditionalStatement(tree); if (statementTree.is(Tree.Kind.BLOCK)) { BlockTree blockTree = (BlockTree) statementTree; if (isMultilineBlock(blockTree)) { previousClosingBracketToken = blockTree.closeCurlyBraceToken(); return; } } previousClosingBracketToken = null; }
private static boolean isNontrivial(List<StatementTree> statements) { return statements.stream() .flatMap(statement -> statement.is(Kind.BLOCK) ? ((BlockTree) statement).statements().stream() : Stream.of(statement)) .mapToInt(LineVisitor::linesOfCode) .sum() > 1; }
private void checkBlock(Tree body, SyntaxToken prevToken) { if (body.is(Kind.BLOCK)) { BlockTree blockTree = (BlockTree)body; SyntaxToken nextToken = getFirstToken(blockTree.statements()); if (nextToken == null) { nextToken = blockTree.closeCurlyBraceToken(); } checkOpenCurlyBrace(blockTree.openCurlyBraceToken(), blockTree.closeCurlyBraceToken(), prevToken, nextToken); } }
private static boolean isMultilineBlock(BlockTree blockTree) { return blockTree.openCurlyBraceToken().line() != blockTree.closeCurlyBraceToken().line(); }
@Override public void visitCatchBlock(CatchBlockTree tree) { checkControlStructureOpenCurly(tree.closeParenthesisToken(), tree.block().openCurlyBraceToken()); super.visitCatchBlock(tree); }
private static boolean hasSingleStatement(CatchBlockTree catchBlock) { return catchBlock.block().statements().size() == 1; }
@Override public void visitBlock(BlockTree tree) { super.visitBlock(tree); SyntaxToken prevToken = tree.openCurlyBraceToken(); List<StatementTree> statements = tree.statements(); if (!statements.isEmpty()) { prevToken = ((PHPTree) statements.get(statements.size() - 1)).getLastToken(); } checkCloseCurlyBrace(tree.closeCurlyBraceToken(), tree.openCurlyBraceToken(), prevToken); }
private static boolean isMultilineBlock(BlockTree blockTree) { return blockTree.openCurlyBraceToken().line() != blockTree.closeCurlyBraceToken().line(); }
@Override public void visitCatchBlock(CatchBlockTree tree) { checkControlStructureOpenCurly(tree.closeParenthesisToken(), tree.block().openCurlyBraceToken()); super.visitCatchBlock(tree); }
private PhpCfgBlock buildBlock(BlockTree block, PhpCfgBlock successor) { return build(block.statements(), successor); }