use alloc::vec;
use alloc::vec::Vec;
use crate::path_search::search::{SearchArgs, SearchResult};
use crate::query::adj_cfg;
use crate::syntax::SyntaxNode;
pub fn search(args: &SearchArgs<'_>) -> Vec<SearchResult> {
for c_id in adj_cfg(args.graph, args.n_id, None, &[]) {
let Some(node) = args.graph.nodes.get(&c_id) else {
continue;
};
let mapped = match node {
SyntaxNode::VariableDeclaration { .. } => node.variable(),
SyntaxNode::MethodDeclaration { .. } => node.name(),
SyntaxNode::Import { .. } | SyntaxNode::ModuleImport { .. } => node.expression(),
_ => continue,
};
if mapped == Some(args.symbol) || node.alias() == Some(args.symbol) {
return vec![(true, c_id)];
}
}
Vec::new()
}