Skip to main content

luaur_analysis/records/
instance_collector.rs

1use crate::records::type_once_visitor::TypeOnceVisitor;
2use crate::type_aliases::type_id::TypeId;
3use crate::type_aliases::type_or_type_pack_id_set::TypeOrTypePackIdSet;
4use crate::type_aliases::type_pack_id::TypePackId;
5use alloc::vec::Vec;
6use luaur_common::records::dense_hash_set::DenseHashSet;
7use luaur_common::records::vec_deque::VecDeque;
8
9#[derive(Debug, Clone)]
10pub struct InstanceCollector {
11    pub base: TypeOnceVisitor,
12    pub recorded_tys: DenseHashSet<TypeId>,
13    pub tys: VecDeque<TypeId>,
14    pub recorded_tps: DenseHashSet<TypePackId>,
15    pub tps: VecDeque<TypePackId>,
16    pub should_guess: TypeOrTypePackIdSet,
17    pub type_function_instance_stack: Vec<*const core::ffi::c_void>,
18    pub cyclic_instance: Vec<TypeId>,
19}