CheckUtils { @Nullable public static ExpressionTree getForCondition(ForStatementTree tree) { if (tree.condition().isEmpty()) { return null; } return tree.condition().get(tree.condition().size() - 1); } private  CheckUtils(); static boolean isFunction(Tree tree); static String getFunctionName(FunctionTree functionDec); @Nullable static String getFunctionName(FunctionCallTree functionCall); @Nullable static String getLowerCaseFunctionName(FunctionCallTree functionCall); @Nullable static String functionName(FunctionCallTree functionCall); @Nullable static String lowerCaseFunctionName(FunctionCallTree functionCall); static Set<String> lowerCaseSet(String... names); static String getClassName(ClassDeclarationTree classDeclaration); static String getLowerCaseClassName(ClassDeclarationTree classDeclarationTree); @Nullable static String nameOf(Tree tree); static boolean isOverriding(MethodDeclarationTree declaration); static boolean isExitExpression(FunctionCallTree functionCallTree); static boolean hasModifier(ClassMemberTree tree, String toFind); static boolean hasModifier(List<SyntaxToken> modifiers, String toFind); static boolean isClosingTag(SyntaxToken token); static boolean isClosingTag(Tree tree); static Stream<String> lines(PhpFile file); static ExpressionTree skipParenthesis(ExpressionTree expr); @Nullable static ExpressionTree getForCondition(ForStatementTree tree); static String trimQuotes(String value); static String trimQuotes(LiteralTree literalTree); static boolean isFalseValue(ExpressionTree tree); static boolean isTrueValue(ExpressionTree tree); static boolean isStringLiteralWithValue(@Nullable Tree tree, String s); static boolean isNullOrEmptyString(ExpressionTree tree); static boolean hasAnnotation(Tree declaration, String annotation); static boolean isPublic(ClassMemberTree tree); static boolean isAbstract(ClassDeclarationTree tree); static final ImmutableList<Kind> FUNCTION_KINDS; static final ImmutableMap<String, String> SUPERGLOBALS_BY_OLD_NAME; static final ImmutableSet<String> SUPERGLOBALS; }
@Test public void for_condition() throws Exception { Tree tree = PHPParserBuilder.createParser().parse("<?= for(;;) {} ?>"); ForStatementTree forStatement = (ForStatementTree) ((CompilationUnitTree) tree).script().statements().get(0); assertThat(CheckUtils.getForCondition(forStatement)).isNull(); tree = PHPParserBuilder.createParser().parse("<?= for(;true;) {} ?>"); forStatement = (ForStatementTree) ((CompilationUnitTree) tree).script().statements().get(0); assertThat(CheckUtils.getForCondition(forStatement).getKind()).isEqualTo(Tree.Kind.BOOLEAN_LITERAL); tree = PHPParserBuilder.createParser().parse("<?= for(;$a == 0, true;) {} ?>"); forStatement = (ForStatementTree) ((CompilationUnitTree) tree).script().statements().get(0); assertThat(CheckUtils.getForCondition(forStatement).getKind()).isEqualTo(Tree.Kind.BOOLEAN_LITERAL); }