private String getMessage(CallExpressionTree tree, int parametersNumber, int argumentsNumber) { String callee; if (isParenthesisedFunctionExpr(tree.callee())){ callee = "This function"; } else { callee = "\"" + CheckUtils.asString(tree.callee()) + "\""; } return String.format(MESSAGE, callee, parametersNumber, argumentsNumber); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(Type.Kind.BACKBONE_MODEL) && !tree.arguments().parameters().isEmpty()) { visitDefaults(tree); } if (tree.callee().is(Kind.DOT_MEMBER_EXPRESSION) && isBackboneSetMethod((DotMemberExpressionTree)tree.callee())){ visitSetMethodCall(tree); } super.visitCallExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { IdentifierTree callee = callee(tree); if (callee != null) { checkForUpdate(callee); } else { logTestedExpression(tree.callee()); } scan(tree.argumentClause()); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(Type.Kind.BACKBONE_MODEL) && !tree.argumentClause().arguments().isEmpty()) { visitDefaults(tree); } if (tree.callee().is(Kind.DOT_MEMBER_EXPRESSION) && isBackboneSetMethod((DotMemberExpressionTree) tree.callee())) { visitSetMethodCall(tree); } super.visitCallExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(ObjectType.FrameworkType.JQUERY_SELECTOR_OBJECT)){ SeparatedList<Tree> parameters = tree.arguments().parameters(); if (!parameters.isEmpty() && parameters.get(0).is(Tree.Kind.STRING_LITERAL)) { String value = ((LiteralTree) parameters.get(0)).value(); value = value.substring(1, value.length() - 1).trim(); visitSelector(value, tree); } } super.visitCallExpression(tree); }
@Override protected void visitSelector(String selector, CallExpressionTree tree) { Matcher matcher = elementUsedWithClassSelectorPattern.matcher(selector); // ignore 2 parameters to not consider such cases: $("div.className", someContext) if (tree.arguments().parameters().size() == 1 && matcher.matches()){ getContext().addIssue(this, tree, String.format(MESSAGE, matcher.group(1))); } } }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(ObjectType.FrameworkType.JQUERY_SELECTOR_OBJECT)) { SeparatedList<ExpressionTree> parameters = tree.argumentClause().arguments(); if (!parameters.isEmpty() && parameters.get(0).is(Tree.Kind.STRING_LITERAL)) { String value = ((LiteralTree) parameters.get(0)).value(); value = value.substring(1, value.length() - 1).trim(); visitSelector(value, tree); } } super.visitCallExpression(tree); }
private void lookForException(ExpressionTree tree) { if (tree.is(Tree.Kind.CALL_EXPRESSION)) { CallExpressionTree callExpressionTree = (CallExpressionTree) tree; if (callExpressionTree.types().contains(ObjectType.FrameworkType.JQUERY_SELECTOR_OBJECT)) { LiteralTree parameter = getSelectorParameter(callExpressionTree); if (parameter != null){ selectors.peek().remove(parameter); } } } }
@Override protected void visitSelector(String selector, CallExpressionTree tree) { Matcher matcher = elementUsedWithClassSelectorPattern.matcher(selector); // ignore 2 parameters to not consider such cases: $("div.className", someContext) if (tree.argumentClause().arguments().size() == 1 && matcher.matches()) { addIssue(tree, String.format(MESSAGE, matcher.group(1))); } } }
/** * Same as {@link #visitNewExpression(NewExpressionTree)}, without the "new". */ @Override public void visitCallExpression(CallExpressionTree tree) { if (isFunctionConstructorWithPossibleInjection(tree.callee(), tree.argumentClause())) { addIssue(tree.callee(), MESSAGE); } super.visitCallExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(Type.Kind.BACKBONE_MODEL) && !tree.arguments().parameters().isEmpty()) { Tree parameter = tree.arguments().parameters().get(0); if (parameter.is(Kind.OBJECT_LITERAL)) { PairPropertyTree defaultsProp = Backbone.getModelProperty((ObjectLiteralTree) parameter, "defaults"); if (defaultsProp != null && defaultsProp.value().is(Kind.OBJECT_LITERAL) && hasObjectOrArrayAttribute((ObjectLiteralTree) defaultsProp.value())) { getContext().addIssue(this, defaultsProp, "Make \"defaults\" a function."); } } } super.visitCallExpression(tree); }
private void visitSetMethodCall(CallExpressionTree tree) { Tree firstParameter = tree.arguments().parameters().get(0); if (firstParameter.is(Kind.OBJECT_LITERAL)){ checkForSpaceInPropertyNames((ObjectLiteralTree) firstParameter); } if (firstParameter.is(Kind.STRING_LITERAL)){ checkString((ExpressionTree) firstParameter); } }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(Type.Kind.BACKBONE_MODEL) && !tree.argumentClause().arguments().isEmpty()) { Tree parameter = tree.argumentClause().arguments().get(0); if (parameter.is(Kind.OBJECT_LITERAL)) { PairPropertyTree defaultsProp = Backbone.getModelProperty((ObjectLiteralTree) parameter, "defaults"); if (defaultsProp != null && defaultsProp.value().is(Kind.OBJECT_LITERAL) && hasObjectOrArrayAttribute((ObjectLiteralTree) defaultsProp.value())) { addIssue(defaultsProp.key(), MESSAGE); } } } super.visitCallExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.types().contains(ObjectType.FrameworkType.JQUERY_SELECTOR_OBJECT)) { LiteralTree parameter = getSelectorParameter(tree); if (parameter != null) { List<LiteralTree> currentSelectors = selectors.peek(); currentSelectors.add(parameter); } } super.visitCallExpression(tree); }
private void compareNumberOfArguments(SuperTree superTree, Symbol superClassSymbol) { CallExpressionTree superCallTree = (CallExpressionTree) superTree.parent(); boolean hasSpreadArgument = superCallTree.argumentClause().arguments().stream().anyMatch(t -> t.is(Kind.SPREAD_ELEMENT)); if (hasSpreadArgument) { return; } getDeclarationTree(superClassSymbol) .flatMap(SuperInvocationCheck::getConstructor) .ifPresent(baseClassConstructor -> { int paramCount = baseClassConstructor.parameterList().size(); long nonDefaultParamCount = baseClassConstructor.parameterList().stream() .filter(b -> !b.is(Kind.INITIALIZED_BINDING_ELEMENT)).count(); int nbArguments = superCallTree.argumentClause().arguments().size(); if (nbArguments < nonDefaultParamCount || nbArguments > paramCount) { String message = String.format(MESSAGE_SUPER_WITH_CORRECT_NUMBER_OF_ARGUMENTS, nonDefaultParamCount, nonDefaultParamCount == 1 ? "" : "s"); addIssue(superCallTree, message).secondary(baseClassConstructor.parameterClause()); } }); }
public static boolean isModel(CallExpressionTree tree) { return isModelExtendMethod(tree.callee()); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (isParseIntCall(tree.callee()) && tree.argumentClause().arguments().size() == 1) { addIssue(tree.callee(), MESSAGE); } super.visitCallExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { FunctionTree functionTree = getFunction(tree); if (functionTree != null) { int parametersNumber = functionTree.parameters().parameters().size(); int argumentsNumber = tree.arguments().parameters().size(); if (!hasRestParameter(functionTree) && !builtInArgumentsUsed(functionTree) && argumentsNumber > parametersNumber) { String message = getMessage(tree, parametersNumber, argumentsNumber); getContext().addIssue(this, tree.arguments(), message); } } super.visitCallExpression(tree); }