luaur_analysis/records/
subtyping.rs1use crate::records::builtin_types::BuiltinTypes;
2use crate::records::internal_error_reporter::InternalErrorReporter;
3use crate::records::normalizer::Normalizer;
4use crate::records::subtyping_result::SubtypingResult;
5use crate::records::type_arena::TypeArena;
6use crate::records::type_check_limits::TypeCheckLimits;
7use crate::records::type_function_runtime::TypeFunctionRuntime;
8use crate::records::type_pair_hash::TypePairHash;
9use crate::type_aliases::seen_set_subtyping::SeenSet;
10use crate::type_aliases::seen_type_pack_set::SeenTypePackSet;
11use crate::type_aliases::type_id::TypeId;
12use luaur_common::records::dense_hash_map::DenseHashMap;
13use luaur_common::records::dense_hash_set::DenseHashSet;
14
15#[derive(Debug, Clone)]
16pub struct Subtyping {
17 pub(crate) builtin_types: *mut BuiltinTypes,
18 pub(crate) arena: *mut TypeArena,
19 pub(crate) normalizer: *mut Normalizer,
20 pub(crate) type_function_runtime: *mut TypeFunctionRuntime,
21 pub(crate) ice_reporter: *mut InternalErrorReporter,
22 pub(crate) limits: TypeCheckLimits,
23 pub(crate) unique_types: *const DenseHashSet<TypeId>,
24 pub(crate) seen_types: SeenSet,
25 pub(crate) seen_packs: SeenTypePackSet,
26 pub(crate) result_cache: DenseHashMap<(TypeId, TypeId), SubtypingResult, TypePairHash>,
27}