@Override public void visitVariableDeclaration(VariableDeclarationTree tree) { scan(tree.variables()); }
@Override public void visitNode(Tree tree) { addIssue(((VariableDeclarationTree) tree).token(), MESSAGE); }
private static void visitVariableDeclaration(ListMultimap<String, Declaration> declarationsByObject, VariableDeclarationTree declaration) { for (BindingElementTree bindingElement : declaration.variables()) { if (bindingElement.is(Kind.INITIALIZED_BINDING_ELEMENT)) { InitializedBindingElementTree initializedDeclaration = (InitializedBindingElementTree) bindingElement; visitInitializedDeclaration(declarationsByObject, declaration, initializedDeclaration); } } }
private static boolean isDeclarationWithoutInit(Tree tree) { if (tree.is(Kind.VAR_DECLARATION)) { SeparatedList<BindingElementTree> bindingElements = ((VariableDeclarationTree) tree).variables(); for (BindingElementTree bindingElement : bindingElements) { if (bindingElement.is(Kind.INITIALIZED_BINDING_ELEMENT)) { return false; } } return true; } return false; }
private static boolean isOneVarDeclaration(Tree tree) { return tree.is(VAR_DECLARATION) && ((VariableDeclarationTree) tree).variables().size() == 1; }
private static boolean isOneVarDeclaration(Tree tree) { return tree.is(Tree.Kind.VAR_DECLARATION) && ((VariableDeclarationTree) tree).variables().size() == 1; }
private void checkForLoop(ForObjectStatementTree forLoop) { Tree variableOrExpression = forLoop.variableOrExpression(); if (variableOrExpression instanceof VariableDeclarationTree) { for (BindingElementTree bindingElementTree : ((VariableDeclarationTree) variableOrExpression).variables()) { checkBindingElement(bindingElementTree, FOREACH_VARIABLE); } } else if (variableOrExpression.is(Kind.IDENTIFIER_REFERENCE)) { IdentifierTree identifier = (IdentifierTree) variableOrExpression; identifier.symbol().ifPresent(s -> checkSymbol(s, identifier, forLoop, FOREACH_VARIABLE)); } }
@Override public void visitVariableDeclaration(VariableDeclarationTree tree) { for (BindingElementTree bindingElement : tree.variables()) { if (bindingElement.is(Kind.INITIALIZED_BINDING_ELEMENT)) { InitializedBindingElementTree initializedBindingElement = (InitializedBindingElementTree) bindingElement; if (isFunctionExpression(initializedBindingElement.right())) { checkName(initializedBindingElement.left()); } } } super.visitVariableDeclaration(tree); }
@Nullable private static Integer getValue(Tree tree) { Integer result = null; if (tree.is(NOT_EQUAL_TO)) { result = getInteger(((BinaryExpressionTree) tree).rightOperand()); } else if (isOneVarDeclaration(tree)) { BindingElementTree variable = ((VariableDeclarationTree) tree).variables().get(0); if (variable.is(INITIALIZED_BINDING_ELEMENT)) { result = getInteger(((InitializedBindingElementTree) variable).right()); } } else if (tree.is(ASSIGNMENT)) { result = getInteger(((AssignmentExpressionTree) tree).expression()); } return result; }
public void addUsages(VariableDeclarationTree tree) { // todo Consider other BindingElementTree types for (BindingElementTree bindingElement : tree.variables()) { if (bindingElement.is(Tree.Kind.INITIALIZED_BINDING_ELEMENT)) { for (IdentifierTree identifier : ((InitializedBindingElementTreeImpl) bindingElement).bindingIdentifiers()){ symbolModel.declareSymbol(identifier.name(), Symbol.Kind.VARIABLE, currentScope) .addUsage(Usage.create(identifier, Usage.Kind.DECLARATION_WRITE)); } } if (bindingElement instanceof IdentifierTree){ IdentifierTree identifierTree = (IdentifierTree) bindingElement; symbolModel.declareSymbol(identifierTree.name(), Symbol.Kind.VARIABLE, currentScope).addUsage(Usage.create(identifierTree, Usage.Kind.DECLARATION)); } } }
private Integer getValue(Tree tree) { Integer result = null; if (tree.is(Tree.Kind.NOT_EQUAL_TO)) { result = getInteger(((BinaryExpressionTree) tree).rightOperand()); } else if (isOneVarDeclaration(tree)) { BindingElementTree variable = ((VariableDeclarationTree) tree).variables().get(0); if (variable.is(Tree.Kind.INITIALIZED_BINDING_ELEMENT)) { result = getInteger(((InitializedBindingElementTree) variable).right()); } } else if (tree.is(Tree.Kind.ASSIGNMENT)) { result = getInteger(((AssignmentExpressionTree) tree).expression()); } return result; }