use oxc_span::Ident;
use oxc_syntax::reference::ReferenceId;
pub struct UnresolvedReferences<'a> {
references: Vec<(Ident<'a>, ReferenceId)>,
}
impl<'a> UnresolvedReferences<'a> {
pub(crate) fn new() -> Self {
Self { references: Vec::new() }
}
#[inline]
pub(crate) fn push(&mut self, name: Ident<'a>, reference_id: ReferenceId) {
self.references.push((name, reference_id));
}
#[inline]
pub(crate) fn checkpoint(&self) -> usize {
self.references.len()
}
#[inline]
pub(crate) fn take(&mut self) -> Vec<(Ident<'a>, ReferenceId)> {
std::mem::take(&mut self.references)
}
#[inline]
pub(crate) fn slice_from(&self, start: usize) -> &[(Ident<'a>, ReferenceId)] {
&self.references[start..]
}
#[inline]
pub(crate) fn truncate(&mut self, len: usize) {
self.references.truncate(len);
}
}