@Override public void visitNewExpression(NewExpressionTree tree) { scan(tree.expression()); scan(tree.arguments()); }
@Override public void visitNewExpression(NewExpressionTree tree) { if (isFunctionConstructorWithPossibleInjection(tree.expression(), tree.argumentClause())) { addIssue(new PreciseIssue(this, new IssueLocation(tree.newKeyword(), tree.expression(), MESSAGE))); } super.visitNewExpression(tree); }
@Override public void visitNewExpression(NewExpressionTree tree) { if (tree.parent().is(Kind.EXPRESSION_STATEMENT) && CheckUtils.asString(tree.expression()).endsWith("Error")) { addIssue(tree, MESSAGE); } super.visitNewExpression(tree); } }
private void raiseError(NewExpressionTree tree) { addIssue(tree.newKeyword(), MESSAGE).secondary(tree.expression()); }
@Override public void visitNewExpression(NewExpressionTree tree) { checkExpression(tree, tree.expression(), usedInCallExpression, usedInNewExpression, "out"); super.visitNewExpression(tree); }
@Override public void visitNewExpression(NewExpressionTree tree) { ExpressionTree constructor = tree.expression(); ArgumentListTree arguments = tree.argumentClause(); if (constructor.is(Kind.IDENTIFIER_REFERENCE)) { Kind allowedArgument = ALLOWED_ARGUMENT_PER_WRAPPER.get(((IdentifierTree) constructor).name()); if (allowedArgument != null && !isAllowedUsage(arguments, allowedArgument)) { addIssue(tree, MESSAGE); } } super.visitNewExpression(tree); }
@Override public void visitNewExpression(NewExpressionTree tree) { if (isSymbol(tree.expression())) { raiseError(tree); } }
private static <T extends Tree> IssueLocation issueLocation(T tree, String message) { if (tree.is(Kind.NEW_EXPRESSION)) { NewExpressionTree newExpressionTree = (NewExpressionTree) tree; return new IssueLocation( newExpressionTree.newKeyword(), newExpressionTree.expression(), message ); } else { CallExpressionTree callExpressionTree = (CallExpressionTree) tree; return new IssueLocation( callExpressionTree.callee(), message ); } }
@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); }
@Override public void visitNewExpression(NewExpressionTree tree) { ExpressionTree expression = tree.expression(); if (expression.is(Tree.Kind.IDENTIFIER_REFERENCE)){ String next = ((IdentifierTree)expression).name(); if ("Array".equals(next) || "Object".equals(next)){ getContext().addIssue(this, tree, String.format("Use a literal instead of the %s constructor.", next)); } } super.visitNewExpression(tree); } }
@Override public void visitNewExpression(NewExpressionTree tree) { ExpressionTree expression = tree.expression(); if (!expression.types().isEmpty() && !isConstructor(expression.types())) { Tree primaryLocationTree = expression; String expressionStr = CheckUtils.asString(expression); ExpressionTree unwrapped = CheckUtils.removeParenthesis(expression); if (unwrapped.is(Tree.Kind.FUNCTION_EXPRESSION)) { primaryLocationTree = ((FunctionExpressionTree) unwrapped).functionKeyword(); expressionStr = "this function"; } addIssue(primaryLocationTree, String.format(MESSAGE, expressionStr)) .secondary(tree.newKeyword()); } super.visitNewExpression(tree); }
@Override public void visitNode(Tree tree) { if (tree.is(Kind.CALL_EXPRESSION)) { checkForImmediatelyInvokedFunction(((CallExpressionTree) tree).callee()); checkForAMDPattern((CallExpressionTree) tree); return; } if (tree.is(Kind.NEW_EXPRESSION)) { if (((NewExpressionTree)tree).arguments() != null) { checkForImmediatelyInvokedFunction(((NewExpressionTree) tree).expression()); } return; } int nbLines = getNumberOfLine(tree); if (nbLines > max && !immediatelyInvokedFunctionExpression && !amdPattern) { String message = String.format("This function has %s lines, which is greater than the %s lines authorized. Split it into smaller functions.", nbLines, max); getContext().addIssue(this, tree, message); } clearCheckState(); }
@Override public void visitNewExpression(NewExpressionTree tree) { ExpressionTree expression = tree.expression(); if (expression.is(Tree.Kind.IDENTIFIER_REFERENCE)) { String constructorName = ((IdentifierTree) expression).name(); if ("Array".equals(constructorName)) { addIssue(tree, MESSAGE); } } super.visitNewExpression(tree); } }
@Override public void visitExpressionStatement(ExpressionStatementTree tree) { Tree expression = tree.expression(); if (expression.is(Kind.NEW_EXPRESSION)) { String message = String.format(MESSAGE, CheckUtils.asString(((NewExpressionTree) expression).expression())); addIssue(expression, message); } super.visitExpressionStatement(tree); }
@Override public void visitNewExpression(NewExpressionTree tree) { super.visitNewExpression(tree); if (tree.expression().types().contains(Type.Kind.BACKBONE_MODEL)) { ((NewExpressionTreeImpl) tree).addType(ObjectType.FrameworkType.BACKBONE_MODEL_OBJECT); } }
@Override public void visitNewExpression(NewExpressionTree tree) { ExpressionTree expression = tree.expression(); if (!expression.types().isEmpty() && isNotConstructor(expression.types())) { getContext().addIssue(this, expression, String.format("Replace %s with a constructor function.", CheckUtils.asString(expression))); } super.visitNewExpression(tree); }
private static boolean isNewCollectionCreation(ExpressionTree expression) { if (expression.is(Kind.ARRAY_LITERAL)) { return true; } if (expression.is(Kind.CALL_EXPRESSION)) { return isCollectionConstructor(((CallExpressionTree) expression).callee()); } if (expression.is(Kind.NEW_EXPRESSION)) { return isCollectionConstructor(((NewExpressionTree) expression).expression()); } return false; }