use alloc::vec::Vec;
use crate::path_search::search::{SearchArgs, SearchResult};
use crate::query::adj_ast;
use crate::syntax::SyntaxNode;
pub fn search(args: &SearchArgs<'_>) -> Vec<SearchResult> {
let Some(SyntaxNode::TryStatement {
resources_id: Some(resources_id),
..
}) = args.graph.nodes.get(&args.n_id)
else {
return Vec::new();
};
let mut out: Vec<SearchResult> = Vec::new();
for resource_id in adj_ast(args.graph, *resources_id, None, &[]) {
if args
.graph
.nodes
.get(&resource_id)
.and_then(SyntaxNode::variable)
.unwrap_or_default()
== args.symbol
{
out.push((true, resource_id));
}
}
out
}