private static boolean hasWindowLikeName(ExpressionTree tree) { String str = CheckUtils.asString(tree); return str.contains("window") || str.contains("Window"); }
private static String expressionList(List<ExpressionTree> expressions) { List<String> names = Lists.newArrayList(); for (ExpressionTree expression : expressions) { names.add(CheckUtils.asString(expression)); } return Joiner.on(", ").join(names); }
private void raiseIssue(ExpressionTree expression, int operandsNumber, ExpressionTree expressionResult) { String lastCase = CheckUtils.asString(expressionResult); String msg = String.format(MESSAGE, operandsNumber, lastCase); addIssue(expression, msg); }
private static String getVariable(MemberExpressionTree memberExpression) { String variableName = CheckUtils.asString(memberExpression.object()); if (variableName.length() > 30) { variableName = "String"; } return variableName; }
private static String getName(AccessorMethodDeclarationTree tree) { return CheckUtils.asString(tree.name()); } }
private static void appendChild(StringBuilder sb, @Nullable SyntaxToken prevToken, Tree child) { if (prevToken != null) { SyntaxToken firstToken = child.firstToken(); if (isSpaceRequired(prevToken, firstToken)) { sb.append(" "); } } sb.append(asString(child)); }
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); }
private static void addDeclaration( ListMultimap<String, Declaration> declarationsByObject, MemberExpressionTree memberExpression, VariableDeclarationTree declaration, InitializedBindingElementTree initializedBindingElement ) { declarationsByObject.put(CheckUtils.asString(memberExpression.object()), new Declaration(((JavaScriptTree) declaration).getKind(), initializedBindingElement)); }
@Override public void visitNode(Tree tree) { if (tree.is(KindSet.FUNCTION_KINDS)) { Tree name = ((FunctionTree) tree).name(); if (name != null) { scope.add(CheckUtils.asString(name)); } } else { checkExpression((DotMemberExpressionTree) tree); } }
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 visitCallExpression(CallExpressionTree tree) { String callee = CheckUtils.asString(tree.callee()); if (OPEN_DATABASE_METHOD_CALLS.contains(callee)){ getContext().addIssue(this, tree, MESSAGE); } super.visitCallExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(KindSet.INC_DEC_KINDS) && currentParameterWithDefault != null) { addIssue(currentParameterWithDefault, String.format(MESSAGE, CheckUtils.asString(currentParameterWithDefault.left()))); currentParameterWithDefault = null; } super.visitUnaryExpression(tree); } }
@Override public void visitMemberExpression(MemberExpressionTree tree) { if (SyntacticEquivalence.areEquivalent(tree.object(), nullExpression)) { context.addIssue(NullDereferenceInConditionalCheck.this, nullExpression, String.format(MESSAGE_FORMAT, CheckUtils.asString(nullExpression))); } super.visitMemberExpression(tree); }
@Override public void visitMemberExpression(MemberExpressionTree tree) { if (SyntacticEquivalence.areEquivalent(tree.object(), nullExpression)) { check.addIssue(nullExpression, String.format(MESSAGE, CheckUtils.asString(nullExpression))); } super.visitMemberExpression(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) { if (tree.parent().is(Kind.EXPRESSION_STATEMENT) && CheckUtils.asString(tree.expression()).endsWith("Error")) { addIssue(tree, MESSAGE); } super.visitNewExpression(tree); } }
private static String getCalleeName(CallExpressionTree callExpression) { ExpressionTree callee = CheckUtils.removeParenthesis(callExpression.callee()); if (callee.is(Kind.DOT_MEMBER_EXPRESSION)) { return ((DotMemberExpressionTree) callee).property().name(); } else { return CheckUtils.asString(callee); } }
private static String getObjectName(MemberExpressionTree dme) { if (dme.object().is(Tree.Kind.DOT_MEMBER_EXPRESSION)) { DotMemberExpressionTree d2 = (DotMemberExpressionTree) dme.object(); return d2.property().name(); } else { return CheckUtils.asString(dme.object()); } }
@Override public void visitBinaryExpression(BinaryExpressionTree tree) { if (tree.is(Tree.Kind.LESS_THAN, Tree.Kind.GREATER_THAN_OR_EQUAL_TO) && isZeroLiteral(tree.rightOperand()) && tree.leftOperand().is(Tree.Kind.DOT_MEMBER_EXPRESSION)) { DotMemberExpressionTree leftOperand = ((DotMemberExpressionTree) tree.leftOperand()); if (isLengthOrSizeProperty(leftOperand)) { String propertyName = leftOperand.property().name(); addIssue(tree, String.format("Fix this expression; %s of \"%s\" is always greater or equal to zero.", propertyName, CheckUtils.asString(leftOperand.object()))); } } super.visitBinaryExpression(tree); }
@Override public void visitCallExpression(CallExpressionTree tree) { if (tree.callee().is(Tree.Kind.DOT_MEMBER_EXPRESSION)) { DotMemberExpressionTree callee = (DotMemberExpressionTree) tree.callee(); boolean isWindow = callee.object().types().contains(Type.Kind.WINDOW) || hasWindowLikeName(callee.object()); if (isWindow && CheckUtils.asString(callee.property()).equals(POST_MESSAGE)) { addIssue(callee.property(), MESSAGE); } } super.visitCallExpression(tree); }