//! Cfg builder that routes a declaration-like node to its block child.
use crate::syntax::cfg::{SyntaxCfgArgs, SyntaxCfgError};
use crate::syntax::SyntaxNode;
use crate::NodeId;
pub fn build(
args: &mut SyntaxCfgArgs<'_>,
n_id: NodeId,
nxt_id: Option<NodeId>,
) -> Result<NodeId, SyntaxCfgError> {
let Some(block_id) = args.graph.nodes.get(&n_id).and_then(SyntaxNode::block_id) else {
return Ok(n_id);
};
let built = args.generic(block_id, nxt_id)?;
args.graph.add_cfg_edge(n_id, built);
Ok(n_id)
}