private boolean isIncDec(UnaryExpressionTree tree) { return tree.is( Tree.Kind.PREFIX_INCREMENT, Tree.Kind.PREFIX_DECREMENT, Tree.Kind.POSTFIX_INCREMENT, Tree.Kind.POSTFIX_DECREMENT ); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(KindSet.INC_DEC_KINDS)) { updatedExpressions.add(tree.expression()); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(Tree.Kind.POSTFIX_INCREMENT, Tree.Kind.POSTFIX_DECREMENT, Tree.Kind.PREFIX_INCREMENT, Tree.Kind.PREFIX_DECREMENT)) { updatedExpressions.add(tree.expression()); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(KindSet.INC_DEC_KINDS)) { raiseIssue(tree); } super.visitUnaryExpression(tree); }
@Override boolean isProblem(UnaryExpressionTree tree, ProgramState currentState) { Constraint constraint = currentState.getConstraint(currentState.peekStack()); Type type = constraint.type(); boolean isDateCasting = type == Type.DATE && tree.is(Kind.UNARY_PLUS); return !isDateCasting && type != null && NOT_ALLOWED_TYPES.contains(type); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (inUpdate && tree.is(KindSet.INC_DEC_KINDS)) { addCurrentLoopCounter(tree.expression()); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree unaryExpression) { if (unaryExpression.is(Kind.TYPEOF)) { ExpressionTree expression = unaryExpression.expression(); if (expression.is(Kind.IDENTIFIER_REFERENCE)) { excludedNames.add(((IdentifierTree) expression).name()); } } super.visitUnaryExpression(unaryExpression); }
@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 visitUnaryExpression(UnaryExpressionTree tree){ if (tree.is(Kind.DELETE, Kind.TYPEOF, Kind.VOID)){ checkExpression(tree.expression()); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(Kind.LOGICAL_COMPLEMENT)) { visitExpression(tree.expression()); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(Tree.Kind.DELETE) && isArrayElement(tree.expression())) { addIssue(tree.operatorToken(), MESSAGE); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { if (tree.is(Tree.Kind.DELETE) && isArrayElement(tree.expression())){ getContext().addIssue(this, tree, MESSAGE); } super.visitUnaryExpression(tree); }
@Override public void visitUnaryExpression(UnaryExpressionTree tree) { ExpressionTree argument = CheckUtils.removeParenthesis(tree.expression()); if (tree.is(Tree.Kind.DELETE) && !isMemberAccess(argument) && !isGlobalProperty(argument)) { addIssue(tree, MESSAGE); } super.visitUnaryExpression(tree); }
@Override public void visitAssignmentExpression(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.POSTFIX_INCREMENT, Tree.Kind.POSTFIX_DECREMENT)) { UnaryExpressionTree postfix = (UnaryExpressionTree) assignment.expression(); if (SyntacticEquivalence.areEquivalent(assignment.variable(), postfix.expression())) { String type = postfix.is(Tree.Kind.POSTFIX_INCREMENT) ? "increment" : "decrement"; String message = String.format(MESSAGE, type); addIssue(postfix.operatorToken(), message); } } super.visitAssignmentExpression(assignment); }
@Override public void visitAssignmentExpression(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.POSTFIX_INCREMENT, Tree.Kind.POSTFIX_DECREMENT)) { UnaryExpressionTree postfix = (UnaryExpressionTree) assignment.expression(); if (SyntacticEquivalence.areEquivalent(assignment.variable(), postfix.expression())) { String type = postfix.is(Tree.Kind.POSTFIX_INCREMENT) ? "increment" : "decrement"; String message = String.format("Remove this %s or correct the code not to waste it.", type); getContext().addIssue(this, postfix, message); } } super.visitAssignmentExpression(assignment); }