Skip to main content

luaur_analysis/records/
overload_resolver.rs

1use crate::records::builtin_types::BuiltinTypes;
2use crate::records::internal_error_reporter::InternalErrorReporter;
3use crate::records::normalizer::Normalizer;
4use crate::records::overload_resolution::OverloadResolution;
5use crate::records::overload_resolver;
6use crate::records::scope::Scope;
7use crate::records::subtyping::Subtyping;
8use crate::records::subtyping_reasoning::SubtypingReasoning;
9use crate::records::type_arena::TypeArena;
10use crate::records::type_check_limits::TypeCheckLimits;
11use crate::type_aliases::error_vec::ErrorVec;
12use crate::type_aliases::module_name_type::ModuleName;
13use crate::type_aliases::type_id::TypeId;
14use crate::type_aliases::type_or_pack::TypeOrPack;
15use crate::type_aliases::type_pack_id::TypePackId;
16use alloc::vec::Vec;
17use luaur_ast::records::ast_expr::AstExpr;
18use luaur_ast::records::location::Location;
19use luaur_common::records::dense_hash_set::DenseHashSet;
20
21#[derive(Debug, Clone)]
22pub struct OverloadResolver {
23    pub(crate) builtin_types: *mut BuiltinTypes,
24    pub(crate) arena: *mut TypeArena,
25    pub(crate) normalizer: *mut Normalizer,
26    pub(crate) type_function_runtime:
27        *mut crate::records::type_function_runtime::TypeFunctionRuntime,
28    pub(crate) scope: *mut Scope,
29    pub(crate) ice: *mut InternalErrorReporter,
30    pub(crate) limits: TypeCheckLimits,
31    pub(crate) subtyping: Subtyping,
32    pub(crate) call_loc: Location,
33}