@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) { scan(tree.callee()); scan(tree.arguments()); }
@Override public void visitCallExpression(CallExpressionTree tree) { int calleeLastLine = getLastLine(tree.callee()); int argumentsLine = ((JavaScriptTree)tree.arguments()).getLine(); if (calleeLastLine != argumentsLine){ getContext().addIssue(this, tree.arguments(), "Make those call arguments start on line " + calleeLastLine); } super.visitCallExpression(tree); }
private void checkForAMDPattern(CallExpressionTree tree) { if (tree.callee().is(Kind.IDENTIFIER_REFERENCE) && "define".equals(((IdentifierTree) tree.callee()).name())){ for (Tree parameter : tree.arguments().parameters()){ if (parameter.is(Kind.FUNCTION_EXPRESSION)){ this.amdPattern = true; } } } }
@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 public void visitCallExpression(CallExpressionTree tree) { IdentifierTree callee = callee(tree); if (callee != null) { checkForUpdate(callee); } else { logTestedExpression(tree.callee()); } scan(tree.arguments()); }
private static boolean isIndexOfCall(ExpressionTree expression) { if (expression.is(Kind.CALL_EXPRESSION)) { CallExpressionTree callExpr = (CallExpressionTree) expression; if (callExpr.arguments().parameters().size() == 1 && callExpr.callee().is(Kind.DOT_MEMBER_EXPRESSION)) { DotMemberExpressionTree memberExpr = (DotMemberExpressionTree) ((CallExpressionTree) expression).callee(); return "indexOf".equals(memberExpr.property().name()); } } return false; }
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) { 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); }
private LiteralTree getSelectorParameter(CallExpressionTree tree) { SeparatedList<Tree> parameters = tree.arguments().parameters(); if (parameters.size() == 1 && parameters.get(0).is(Tree.Kind.STRING_LITERAL) && !isElementCreation((LiteralTree) parameters.get(0))) { return (LiteralTree) parameters.get(0); } return null; }
@Override public void visitCallExpression(CallExpressionTree tree) { if (isParseIntCall(tree.callee()) && tree.arguments().parameters().size() == 1) { getContext().addIssue(this, tree, "Add the base to this \"parseInt\" call."); } 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 visitDefaults(CallExpressionTree tree) { 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)) { checkForSpaceInPropertyNames((ObjectLiteralTree) defaultsProp.value()); } } }
@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); }
private void inferParameterType(CallExpressionTree tree) { Type functionType = tree.callee().types().getUniqueType(Type.Kind.FUNCTION); if (functionType != null) { SeparatedList<Tree> parameters = ((FunctionType)functionType).functionTree().parameters().parameters(); SeparatedList<Tree> arguments = tree.arguments().parameters(); int minSize = arguments.size() < parameters.size() ? arguments.size() : parameters.size(); for (int i = 0; i < minSize; i++) { Preconditions.checkState(arguments.get(i) instanceof ExpressionTree); Tree currentParameter = parameters.get(i); if (currentParameter instanceof IdentifierTree) { Symbol symbol = ((IdentifierTree) currentParameter).symbol(); if (symbol != null) { addTypes(symbol, ((ExpressionTree) arguments.get(i)).types()); } else { throw new IllegalStateException(String.format( "Parameter %s has no symbol associated with it (line %s)", ((IdentifierTree) currentParameter).name(), ((JavaScriptTree) currentParameter).getLine() )); } } } } }