fluidattacks-blends-domain 0.3.0

Blends functional core: pure AST graph to syntax graph (no_std)
Documentation
//! Cfg builder that descends into a method declared as a variable value.

use crate::query::match_ast_d;
use crate::syntax::cfg::{SyntaxCfgArgs, SyntaxCfgError};
use crate::NodeId;

pub fn build(
    args: &mut SyntaxCfgArgs<'_>,
    n_id: NodeId,
    nxt_id: Option<NodeId>,
) -> Result<NodeId, SyntaxCfgError> {
    if let Some(m_id) = match_ast_d(args.graph, n_id, "MethodDeclaration", None) {
        let built = args.generic(m_id, nxt_id)?;
        args.graph.add_cfg_edge(n_id, built);
    }

    if let Some(nxt_id) = nxt_id {
        args.graph.add_cfg_edge(n_id, nxt_id);
    }

    Ok(n_id)
}