//! Cfg builder that follows an awaited expression into its invocation.
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, "MethodInvocation", 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)
}