fluidattacks-blends-domain 0.6.0

Blends functional core: pure AST graph to syntax graph (no_std)
Documentation
//! Counterpart of `blends/path_search/search/for_each.py`.

use alloc::vec;
use alloc::vec::Vec;

use crate::path_search::search::{SearchArgs, SearchResult};
use crate::syntax::SyntaxNode;

pub fn search(args: &SearchArgs<'_>) -> Vec<SearchResult> {
    let Some(SyntaxNode::ForEachStatement { variable_id, .. }) = args.graph.nodes.get(&args.n_id)
    else {
        return Vec::new();
    };
    if args
        .graph
        .nodes
        .get(variable_id)
        .and_then(SyntaxNode::symbol)
        == Some(args.symbol)
    {
        return vec![(false, args.n_id)];
    }
    Vec::new()
}