luaur_analysis/records/
subtyping_environment.rs1use crate::records::generic_bounds::GenericBounds;
4use crate::records::mapped_generic_environment::MappedGenericEnvironment;
5use crate::records::subtyping_result::SubtypingResult;
6use crate::records::type_pair_hash::TypePairHash;
7use crate::type_aliases::type_id::TypeId;
8use alloc::vec::Vec;
9use luaur_common::records::dense_hash_map::DenseHashMap;
10
11#[derive(Debug)]
12pub struct SubtypingEnvironment {
13 pub parent: *mut SubtypingEnvironment,
14 pub mapped_generics: DenseHashMap<TypeId, Vec<GenericBounds>>,
15 pub mapped_generic_packs: MappedGenericEnvironment,
16 pub substitutions: DenseHashMap<TypeId, TypeId>,
17 pub seen_set_cache: DenseHashMap<(TypeId, TypeId), SubtypingResult, TypePairHash>,
18 pub iteration_count: i32,
19}