private static boolean isMultiline(ArrayLiteralTree arrayLiteral) { return isMultilineInternal(arrayLiteral.elements(), arrayLiteral.closeBracketToken()); }
private static boolean endsWithComma(ArrayLiteralTree arrayLiteral) { Tree last = arrayLiteral.elementsAndCommas().get(arrayLiteral.elementsAndCommas().size() - 1); return last.is(Tree.Kind.TOKEN); }
@Override public void visitArrayLiteral(ArrayLiteralTree tree) { scan(tree.elements()); }
@Override public void visitArrayLiteral(ArrayLiteralTree tree) { if (isMultiline(tree) && !endsWithComma(tree)) { raiseIssueOnLastElement(tree.elements()); } super.visitArrayLiteral(tree); }
private static boolean isBasicValue(ExpressionTree expression) { if (expression.is(Kind.BOOLEAN_LITERAL, Kind.NUMERIC_LITERAL, Kind.STRING_LITERAL, Kind.NULL_LITERAL)) { return BASIC_LITERAL_VALUES.contains(((LiteralTree) expression).value()); } else if (expression.is(Kind.UNARY_MINUS)) { ExpressionTree operand = ((UnaryExpressionTree) expression).expression(); return BASIC_LITERAL_VALUES.contains("-" + ((LiteralTree) operand).value()); } else if (expression.is(Kind.ARRAY_LITERAL)) { return ((ArrayLiteralTree) expression).elements().isEmpty(); } else if (expression.is(Kind.OBJECT_LITERAL)) { return ((ObjectLiteralTree) expression).properties().isEmpty(); } else if (expression.is(Kind.IDENTIFIER_REFERENCE)) { return ((IdentifierTree) expression).name().equals("undefined"); } ExpressionTree withoutParenthesis = CheckUtils.removeParenthesis(expression); if (withoutParenthesis.is(Kind.VOID)) { ExpressionTree operand = ((UnaryExpressionTree) withoutParenthesis).expression(); return operand.is(Kind.NUMERIC_LITERAL) && "0".equals(((LiteralTree) operand).value()); } return false; }
@Override public void visitArrayLiteral(ArrayLiteralTree tree) { List<Tree> elementsAndCommas = tree.elementsAndCommas(); if (!elementsAndCommas.isEmpty()) { Tree last = elementsAndCommas.get(elementsAndCommas.size() - 1); if (last.is(Kind.TOKEN)) { raiseIssue(last); } } super.visitArrayLiteral(tree); }