@Nullable private static AssignmentExpressionTree getInnerAssignmentExpression(ExpressionTree tree) { if (tree.is(Kind.PARENTHESISED_EXPRESSION)) { ParenthesisedExpressionTree parenthesizedTree = (ParenthesisedExpressionTree) tree; if (parenthesizedTree.expression() instanceof AssignmentExpressionTree) { return (AssignmentExpressionTree) parenthesizedTree.expression(); } } return null; }
@Override public void visitParenthesisedExpression(ParenthesisedExpressionTree tree) { scan(tree.expression()); }
private static void addCaseExpression(Set<Tree> caseExpressions, ExpressionTree expression) { if (expression.is(Kind.PARENTHESISED_EXPRESSION)) { addCaseExpression(caseExpressions, ((ParenthesisedExpressionTree) expression).expression()); } else { caseExpressions.add(expression); } }
public static ExpressionTree removeParenthesis(ExpressionTree expressionTree) { if (expressionTree.is(Tree.Kind.PARENTHESISED_EXPRESSION)) { return removeParenthesis(((ParenthesisedExpressionTree) expressionTree).expression()); } return expressionTree; }
private ExpressionTree removeParenthesis(ExpressionTree expressionTree) { if (expressionTree.is(Tree.Kind.PARENTHESISED_EXPRESSION)) { return removeParenthesis(((ParenthesisedExpressionTree) expressionTree).expression()); } return expressionTree; }
private boolean isParenthesisedFunctionExpr(ExpressionTree tree) { return tree.is(Tree.Kind.PARENTHESISED_EXPRESSION) && ((ParenthesisedExpressionTree) tree).expression().is(Tree.Kind.FUNCTION_EXPRESSION); }
private void checkExpression(@Nullable ExpressionTree expression) { if (expression != null && expression.is(Kind.PARENTHESISED_EXPRESSION)){ String expressingString = CheckUtils.asString(((ParenthesisedExpressionTree) expression).expression()); getContext().addIssue(this, expression, String.format("The parentheses around \"%s\" are useless.", expressingString)); } }
@Override public void visitParenthesisedExpression(ParenthesisedExpressionTree tree) { super.visitParenthesisedExpression(tree); ((ParenthesisedExpressionTreeImpl) tree).addTypes(tree.expression().types()); }
private void checkForImmediatelyInvokedFunction(ExpressionTree callee) { Kind[] funcExprKinds = {Kind.FUNCTION_EXPRESSION, Kind.GENERATOR_FUNCTION_EXPRESSION}; boolean directFunctionCallee = callee.is(funcExprKinds); boolean parenthesisedFunctionCallee = callee.is(Kind.PARENTHESISED_EXPRESSION) && ((ParenthesisedExpressionTree) callee).expression().is(funcExprKinds); if (directFunctionCallee || parenthesisedFunctionCallee){ this.immediatelyInvokedFunctionExpression = true; } }
private void visitExpression(ExpressionTree expression) { if (expression.is(Kind.PARENTHESISED_EXPRESSION)){ visitExpression(((ParenthesisedExpressionTree)expression).expression()); } if (expression.is(Kind.BOOLEAN_LITERAL)){ String message = String.format("Remove the literal \"%s\" boolean value.", ((LiteralTree) expression).value()); getContext().addIssue(this, expression, message); } }
@Override public void visitParenthesisedExpression(ParenthesisedExpressionTree tree) { if (tree.expression().is(Kind.PARENTHESISED_EXPRESSION)) { addIssue(tree.openParenthesisToken(), MESSAGE) .secondary(tree.closeParenthesisToken()); } super.visitParenthesisedExpression(tree); } }
@Override public void visitNewExpression(NewExpressionTree tree) { if (tree.arguments() == null && tree.expression().is(Kind.PARENTHESISED_EXPRESSION)) { ParenthesisedExpressionTree parenthesisedExpression = (ParenthesisedExpressionTree) tree.expression(); // new (a || b) if (!(parenthesisedExpression.expression() instanceof BinaryExpressionTree)) { checkExpression(tree.expression()); } } super.visitNewExpression(tree); }