private static Set<Symbol> getUsedLocalVarInSubTree(Tree tree, Symbol.MethodSymbol methodSymbol) { VariableReadExtractor localVarExtractor = new VariableReadExtractor(methodSymbol, false); tree.accept(localVarExtractor); return localVarExtractor.usedVariables(); }
@Override public void visitVariable(VariableTree tree) { // skip variable modifiers and simple name scan(tree.initializer()); }
@Override public void visitIdentifier(IdentifierTree tree) { Symbol owner = tree.symbol().owner(); if(methodSymbol.equals(owner) || (includeFields && isField(tree.symbol(), methodSymbol.owner()))) { used.add(tree.symbol()); } super.visitIdentifier(tree); }
@Override public void visitIdentifier(IdentifierTree tree) { Symbol owner = tree.symbol().owner(); if(methodSymbol.equals(owner) || (includeFields && isField(tree.symbol(), methodSymbol.owner()))) { used.add(tree.symbol()); } super.visitIdentifier(tree); }
private static Set<Symbol> getUsedLocalVarInSubTree(Tree tree, Symbol.MethodSymbol methodSymbol) { VariableReadExtractor localVarExtractor = new VariableReadExtractor(methodSymbol, false); tree.accept(localVarExtractor); return localVarExtractor.usedVariables(); }
@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { // skip variable declaration scan(lambdaExpressionTree.body()); }
private Set<Symbol> getUsedVariables(@Nullable Tree syntaxNode, Symbol.MethodSymbol owner) { if(syntaxNode == null) { return Collections.emptySet(); } VariableReadExtractor extractorFromClass = new VariableReadExtractor(owner, includeFields); syntaxNode.accept(extractorFromClass); return extractorFromClass.usedVariables(); }
@Override public void visitLambdaExpression(LambdaExpressionTree lambdaExpressionTree) { // skip variable declaration scan(lambdaExpressionTree.body()); }
private Set<Symbol> getUsedVariables(@Nullable Tree syntaxNode, Symbol.MethodSymbol owner) { if(syntaxNode == null) { return Collections.emptySet(); } VariableReadExtractor extractorFromClass = new VariableReadExtractor(owner, includeFields); syntaxNode.accept(extractorFromClass); return extractorFromClass.usedVariables(); }
@Override public void visitClass(ClassTree tree) { // skip modifiers, parameters, simple name and superclass/interface scan(tree.members()); }
@Override public void visitVariable(VariableTree tree) { // skip variable modifiers and simple name scan(tree.initializer()); }
@Override public void visitClass(ClassTree tree) { // skip modifiers, parameters, simple name and superclass/interface scan(tree.members()); }