@Override public SymbolReference<ResolvedTypeDeclaration> solveType(String name, TypeSolver typeSolver) { return getParent().solveType(name, typeSolver); } }
Optional<Value> symbolReference = solveWithAsValue(symbolDeclarator, name); if (symbolReference.isPresent()) { return symbolReference; return getParent().solveSymbolAsValue(name); return getParent().solveSymbolAsValue(name); return getParent().solveSymbolAsValue(name); return getParent().solveSymbolAsValue(name); symbolReference = solveWithAsValue(symbolDeclarator, name); if (symbolReference.isPresent()) { return symbolReference; Context parentContext = getParent(); return parentContext.solveSymbolAsValue(name);
SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name); return getParent().solveSymbol(name); return getParent().solveSymbol(name); return getParent().solveSymbol(name); symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name);
@Override public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name, TypeSolver typeSolver) { for (Expression expression : wrappedNode.getInitialization()) { if (expression instanceof VariableDeclarationExpr) { VariableDeclarationExpr variableDeclarationExpr = (VariableDeclarationExpr) expression; for (VariableDeclarator variableDeclarator : variableDeclarationExpr.getVariables()) { if (variableDeclarator.getName().getId().equals(name)) { return SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)); } } } else if (!(expression instanceof AssignExpr || expression instanceof MethodCallExpr)) { throw new UnsupportedOperationException(expression.getClass().getCanonicalName()); } } if (getParentNode(wrappedNode) instanceof NodeWithStatements) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name, typeSolver); } }
public static Optional<Value> solveInBlockAsValue(String name, TypeSolver typeSolver, Statement stmt) { if (!(requireParentNode(stmt) instanceof NodeWithStatements)) { throw new IllegalArgumentException(); } NodeWithStatements<?> blockStmt = (NodeWithStatements<?>) requireParentNode(stmt); int position = -1; for (int i = 0; i < blockStmt.getStatements().size(); i++) { if (blockStmt.getStatements().get(i).equals(stmt)) { position = i; } } if (position == -1) { throw new RuntimeException(); } for (int i = position - 1; i >= 0; i--) { SymbolDeclarator symbolDeclarator = JavaParserFactory.getSymbolDeclarator(blockStmt.getStatements().get(i), typeSolver); SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return Optional.of(Value.from(symbolReference.getCorrespondingDeclaration())); } } // if nothing is found we should ask the parent context return JavaParserFactory.getContext(requireParentNode(stmt), typeSolver).solveSymbolAsValue(name); }
@Override public Optional<Value> solveSymbolAsValue(String name, TypeSolver typeSolver) { for (Expression expr : wrappedNode.getResources()) { if (expr instanceof VariableDeclarationExpr) { for (VariableDeclarator v : ((VariableDeclarationExpr)expr).getVariables()) { if (v.getName().getIdentifier().equals(name)) { JavaParserSymbolDeclaration decl = JavaParserSymbolDeclaration.localVar(v, typeSolver); return Optional.of(Value.from(decl)); } } } } if (getParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlockAsValue(name, typeSolver, wrappedNode); } else { return getParent().solveSymbolAsValue(name, typeSolver); } }
return new TryWithResourceContext((TryStmt) node, typeSolver); } else if (node instanceof Statement) { return new StatementContext<Statement>((Statement) node, typeSolver); } else if (node instanceof CatchClause) { return new CatchClauseContext((CatchClause) node, typeSolver);
Optional<Value> symbolReference = solveWithAsValue(symbolDeclarator, name, typeSolver); if (symbolReference.isPresent()) { return symbolReference; return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); symbolReference = solveWithAsValue(symbolDeclarator, name, typeSolver); if (symbolReference.isPresent()) { return symbolReference; Context parentContext = getParent(); return parentContext.solveSymbolAsValue(name, typeSolver);
SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name, typeSolver);
@Override public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name, TypeSolver typeSolver) { for (Expression expression : wrappedNode.getInitialization()) { if (expression instanceof VariableDeclarationExpr) { VariableDeclarationExpr variableDeclarationExpr = (VariableDeclarationExpr) expression; for (VariableDeclarator variableDeclarator : variableDeclarationExpr.getVariables()) { if (variableDeclarator.getName().getId().equals(name)) { return SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)); } } } else if (!(expression instanceof AssignExpr || expression instanceof MethodCallExpr)) { throw new UnsupportedOperationException(expression.getClass().getCanonicalName()); } } if (getParentNode(wrappedNode) instanceof NodeWithStatements) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name, typeSolver); } }
public static Optional<Value> solveInBlockAsValue(String name, TypeSolver typeSolver, Statement stmt) { if (!(getParentNode(stmt) instanceof NodeWithStatements)) { throw new IllegalArgumentException(); } NodeWithStatements<?> blockStmt = (NodeWithStatements<?>) getParentNode(stmt); int position = -1; for (int i = 0; i < blockStmt.getStatements().size(); i++) { if (blockStmt.getStatements().get(i).equals(stmt)) { position = i; } } if (position == -1) { throw new RuntimeException(); } for (int i = position - 1; i >= 0; i--) { SymbolDeclarator symbolDeclarator = JavaParserFactory.getSymbolDeclarator(blockStmt.getStatements().get(i), typeSolver); SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return Optional.of(Value.from(symbolReference.getCorrespondingDeclaration())); } } // if nothing is found we should ask the parent context return JavaParserFactory.getContext(getParentNode(stmt), typeSolver).solveSymbolAsValue(name, typeSolver); }
@Override public Optional<Value> solveSymbolAsValue(String name, TypeSolver typeSolver) { for (Expression expr : wrappedNode.getResources()) { if (expr instanceof VariableDeclarationExpr) { for (VariableDeclarator v : ((VariableDeclarationExpr)expr).getVariables()) { if (v.getName().getIdentifier().equals(name)) { JavaParserSymbolDeclaration decl = JavaParserSymbolDeclaration.localVar(v, typeSolver); return Optional.of(Value.from(decl)); } } } } if (getParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlockAsValue(name, typeSolver, wrappedNode); } else { return getParent().solveSymbolAsValue(name, typeSolver); } }
return new TryWithResourceContext((TryStmt) node, typeSolver); } else if (node instanceof Statement) { return new StatementContext<Statement>((Statement) node, typeSolver); } else if (node instanceof CatchClause) { return new CatchClauseContext((CatchClause) node, typeSolver);
Optional<Value> symbolReference = solveWithAsValue(symbolDeclarator, name, typeSolver); if (symbolReference.isPresent()) { return symbolReference; return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); return getParent().solveSymbolAsValue(name, typeSolver); symbolReference = solveWithAsValue(symbolDeclarator, name, typeSolver); if (symbolReference.isPresent()) { return symbolReference; Context parentContext = getParent(); return parentContext.solveSymbolAsValue(name, typeSolver);
SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); return getParent().solveSymbol(name, typeSolver); symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return symbolReference; return getParent().solveSymbol(name, typeSolver);
@Override public SymbolReference<? extends ResolvedValueDeclaration> solveSymbol(String name) { for (Expression expression : wrappedNode.getInitialization()) { if (expression instanceof VariableDeclarationExpr) { VariableDeclarationExpr variableDeclarationExpr = (VariableDeclarationExpr) expression; for (VariableDeclarator variableDeclarator : variableDeclarationExpr.getVariables()) { if (variableDeclarator.getName().getId().equals(name)) { return SymbolReference.solved(JavaParserSymbolDeclaration.localVar(variableDeclarator, typeSolver)); } } } else if (!(expression instanceof AssignExpr || expression instanceof MethodCallExpr)) { throw new UnsupportedOperationException(expression.getClass().getCanonicalName()); } } if (requireParentNode(wrappedNode) instanceof NodeWithStatements) { return StatementContext.solveInBlock(name, typeSolver, wrappedNode); } else { return getParent().solveSymbol(name); } }
@Override public SymbolReference<ResolvedTypeDeclaration> solveType(String name) { return getParent().solveType(name); } }
public static Optional<Value> solveInBlockAsValue(String name, TypeSolver typeSolver, Statement stmt) { if (!(getParentNode(stmt) instanceof NodeWithStatements)) { throw new IllegalArgumentException(); } NodeWithStatements<?> blockStmt = (NodeWithStatements<?>) getParentNode(stmt); int position = -1; for (int i = 0; i < blockStmt.getStatements().size(); i++) { if (blockStmt.getStatements().get(i).equals(stmt)) { position = i; } } if (position == -1) { throw new RuntimeException(); } for (int i = position - 1; i >= 0; i--) { SymbolDeclarator symbolDeclarator = JavaParserFactory.getSymbolDeclarator(blockStmt.getStatements().get(i), typeSolver); SymbolReference<? extends ResolvedValueDeclaration> symbolReference = solveWith(symbolDeclarator, name); if (symbolReference.isSolved()) { return Optional.of(Value.from(symbolReference.getCorrespondingDeclaration())); } } // if nothing is found we should ask the parent context return JavaParserFactory.getContext(getParentNode(stmt), typeSolver).solveSymbolAsValue(name, typeSolver); }
@Override public Optional<Value> solveSymbolAsValue(String name) { for (Expression expr : wrappedNode.getResources()) { if (expr instanceof VariableDeclarationExpr) { for (VariableDeclarator v : ((VariableDeclarationExpr)expr).getVariables()) { if (v.getName().getIdentifier().equals(name)) { JavaParserSymbolDeclaration decl = JavaParserSymbolDeclaration.localVar(v, typeSolver); return Optional.of(Value.from(decl)); } } } } if (requireParentNode(wrappedNode) instanceof BlockStmt) { return StatementContext.solveInBlockAsValue(name, typeSolver, wrappedNode); } else { return getParent().solveSymbolAsValue(name); } }
return new TryWithResourceContext((TryStmt) node, typeSolver); } else if (node instanceof Statement) { return new StatementContext<>((Statement) node, typeSolver); } else if (node instanceof CatchClause) { return new CatchClauseContext((CatchClause) node, typeSolver);