private static List<ExpressionTree> updatedExpressions(@Nullable ExpressionTree expression) { if (expression == null) { return ImmutableList.<ExpressionTree>of(); } UpdateVisitor visitor = new UpdateVisitor(); expression.accept(visitor); return visitor.updatedExpressions; }
private List<ExpressionTree> updatedExpressions(ExpressionTree expression) { if (expression == null) { return ImmutableList.<ExpressionTree>of(); } UpdateVisitor visitor = new UpdateVisitor(); expression.accept(visitor); return visitor.updatedExpressions; }
@Override public void visitForStatement(ForStatementTree forStatement) { List<ExpressionTree> updatedExpressions = updatedExpressions(forStatement.update()); ExpressionTree condition = forStatement.condition(); if (!updatedExpressions.isEmpty() && condition != null) { ConditionVisitor conditionVisitor = new ConditionVisitor(updatedExpressions); condition.accept(conditionVisitor); if (!conditionVisitor.foundUpdatedExpression) { String updated = expressionList(updatedExpressions); String tested = expressionList(conditionVisitor.testedExpressions); String message = String.format(MESSAGE, tested, updated); addIssue(forStatement.forKeyword(), message); } } super.visitForStatement(forStatement); }
@Override public void visitForStatement(ForStatementTree forStatement) { List<ExpressionTree> updatedExpressions = updatedExpressions(forStatement.update()); ExpressionTree condition = forStatement.condition(); if (!updatedExpressions.isEmpty() && condition != null) { ConditionVisitor conditionVisitor = new ConditionVisitor(updatedExpressions); condition.accept(conditionVisitor); if (!conditionVisitor.foundUpdatedExpression) { String updated = expressionList(updatedExpressions); String tested = expressionList(conditionVisitor.testedExpressions); String message = String.format("This loop's stop condition tests \"%s\" but the incrementer updates \"%s\".", tested, updated); getContext().addIssue(this, forStatement, message); } } super.visitForStatement(forStatement); }
@Override public void visitBinaryExpression(BinaryExpressionTree tree) { if (isAndWithEqualToNull(tree) || isOrWithNonEqualToNull(tree)) { BinaryExpressionTree leftOperand = (BinaryExpressionTree) CheckUtils.removeParenthesis(tree.leftOperand()); ExpressionTree expression = CheckUtils.removeParenthesis(getNonNullLiteralOperand(leftOperand)); tree.rightOperand().accept(new NullExpressionUsageVisitor(expression, this)); } super.visitBinaryExpression(tree); }
@Override public void visitBinaryExpression(BinaryExpressionTree tree) { if (isAndWithEqualToNull(tree) || isOrWithNonEqualToNull(tree)) { BinaryExpressionTree leftOperand = (BinaryExpressionTree) removeParenthesis(tree.leftOperand()); ExpressionTree expression = removeParenthesis(getNonNullLiteralOperand(leftOperand)); tree.rightOperand().accept(new NullExpressionUsageVisitor(expression, getContext())); } super.visitBinaryExpression(tree); }