@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { Tree assignedVariable = getAssignedVariable(tree.variable()); if (assignedVariable != null) { type = getTypeFromExpression(assignedVariable, kinds); } }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { if (!stopInspection && tree.variable().is(Tree.Kind.IDENTIFIER) && usages.contains(tree.variable())) { dynamicString |= isDynamicString(methodInvocationTree, tree.expression(), currentlyChecking); } super.visitAssignmentExpression(tree); }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { if (tree.variable().is(Kind.IDENTIFIER)) { Tree declaration = ((IdentifierTree) tree.variable()).symbol().declaration(); if (declaration != null && declaration.is(Kind.VARIABLE)) { excludedVariables.add((VariableTree) declaration); } } } }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { checkExpression(tree.variable()); super.visitAssignmentExpression(tree); }
private static String attributeName(ExpressionTree expression) { if (expression.is(Tree.Kind.ASSIGNMENT)) { AssignmentExpressionTree assignment = (AssignmentExpressionTree) expression; // assignment.variable() in annotation is always a Tree.Kind.IDENTIFIER return ((IdentifierTree) assignment.variable()).name(); } return DEFAULT_ATTRIBUTE; }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { checkIdentifier(tree.variable()); super.visitAssignmentExpression(tree); }
private boolean isNotLoopLocalVar(AssignmentExpressionTree tree) { IdentifierTree idTree = getIdentifierTree(tree.variable()); Tree envTree = semanticModel.getTree(semanticModel.getEnv(idTree.symbol())); Tree loopTree = loopLevel.peek(); return envTree == null || !(envTree.equals(loopTree) || envTree.equals(loopStatement(loopTree))); }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { super.visitAssignmentExpression(tree); if (isFileCreateTempFile(tree.expression())) { ExpressionTree variable = tree.variable(); if (variable.is(Tree.Kind.IDENTIFIER) && !symbolStack.isEmpty()) { symbolStack.peek().put(((IdentifierTree) variable).symbol(), State.CREATE_TMP_FILE); } } }
private void buildAssignment(AssignmentExpressionTree tree) { currentBlock.elements.add(tree); build(tree.expression()); // The variable is not evaluated for simple assignment as it's only used to know where to store the value: JLS8-15.26 if (!ExpressionUtils.isSimpleAssignment(tree)) { build(tree.variable()); } }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { scan(tree.variable()); scan(tree.expression()); }
private static boolean shouldVerify(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.NEW_CLASS) && assignment.variable().is(Tree.Kind.IDENTIFIER)) { IdentifierTree identifier = (IdentifierTree) assignment.variable(); boolean isMethodVariable = identifier.symbol().isVariableSymbol() && identifier.symbol().owner().isMethodSymbol(); boolean isSupportedClass = CLASSES.stream().anyMatch(identifier.symbolType()::isSubtypeOf) || CLASSES.stream().anyMatch(assignment.expression().symbolType()::isSubtypeOf); return isMethodVariable && isSupportedClass; } return false; }
private void checkCookieBuilder(AssignmentExpressionTree assignment) { if (assignment.expression().is(Tree.Kind.METHOD_INVOCATION) && (assignment.variable().is(Tree.Kind.IDENTIFIER) || assignment.variable().is(Tree.Kind.MEMBER_SELECT))) { MethodInvocationTree mit = (MethodInvocationTree) assignment.expression(); VariableSymbol variableSymbol = getVariableSymbol(assignment); if (variableSymbol != null) { addToIgnoredVariables(variableSymbol, mit); } } }
@Override public void visitAssignmentExpression(AssignmentExpressionTree tree) { ExpressionTree variable = tree.variable(); if (variable.is(Tree.Kind.IDENTIFIER)) { IdentifierTree identifier = (IdentifierTree) variable; Symbol reference = identifier.symbol(); if (reference.isVariableSymbol() && variables.contains(reference)) { context.reportIssue(this, identifier, "Introduce a new variable instead of reusing the parameter \"" + identifier.name() + "\"."); } } }
private static boolean nonLocalAssignment(Tree syntaxNode) { if (syntaxNode.is(Tree.Kind.ASSIGNMENT)) { ExpressionTree variable = ((AssignmentExpressionTree) syntaxNode).variable(); return !variable.is(Tree.Kind.IDENTIFIER) || ((IdentifierTree) variable).symbol().owner().isTypeSymbol(); } return false; }
private void checkCollectionAssignments(List<IdentifierTree> usages) { for (IdentifierTree usage : usages) { Tree parentTree = usage.parent(); if (parentTree.is(Tree.Kind.ASSIGNMENT)) { AssignmentExpressionTree assignment = (AssignmentExpressionTree) parentTree; ExpressionTree expression = assignment.expression(); if (usage.equals(assignment.variable()) && !expression.is(Tree.Kind.NULL_LITERAL) && isUnserializableCollection(expression.symbolType())) { reportIssue(usage); } } } }
private void checkAssignment(AssignmentExpressionTree assignment) { checkCookieBuilder(assignment); if (shouldVerify(assignment)) { categorizeBasedOnConstructor((NewClassTree) assignment.expression(), (VariableSymbol) ((IdentifierTree) assignment.variable()).symbol()); } }
private static ForLoopInitializer assignmentInitializer(ExpressionTree expression) { if (expression.is(Tree.Kind.ASSIGNMENT)) { AssignmentExpressionTree assignment = (AssignmentExpressionTree) expression; ExpressionTree variable = assignment.variable(); if (variable.is(Tree.Kind.IDENTIFIER)) { return new ForLoopInitializer((IdentifierTree) variable, intLiteralValue(assignment.expression())); } } return null; }
private void checkBooleanToggling(Tree tree, Symbol identifierSymbol) { Tree parent = tree.parent(); if (parent.is(Tree.Kind.PARENTHESIZED_EXPRESSION)) { checkBooleanToggling(parent, identifierSymbol); } else if (parent.is(Tree.Kind.ASSIGNMENT)) { IdentifierTree variableIdentifier = getVariableIdentifier(((AssignmentExpressionTree) parent).variable()); if (variableIdentifier != null && identifierSymbol.equals(variableIdentifier.symbol())) { reportIssueIfNotInExcludedContext(tree, "AtomicBoolean"); } } }