Skip to main content

luaur_analysis/records/
subtyping_environment.rs

1//! Source: `Analysis/include/Luau/Subtyping.h` (hand-ported; fields only)
2
3use 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}