use alloc::vec;
use alloc::vec::Vec;
use crate::query::adj_ast;
use crate::{CodeGraph, NodeId};
#[must_use]
pub fn pair_declaration_value_ids<G: CodeGraph>(
graph: &G,
value_field_id: Option<NodeId>,
count: usize,
) -> Vec<Option<NodeId>> {
let Some(value_field_id) = value_field_id else {
return vec![None; count];
};
let exprs: Vec<NodeId> = adj_ast(graph, value_field_id, Some(1), &[])
.into_iter()
.filter(|c_id| graph.label_type(*c_id) != Some(","))
.collect();
if exprs.len() == count {
return exprs.into_iter().map(Some).collect();
}
vec![Some(value_field_id); count]
}