Skip to main content

luaur_analysis/records/
overload_resolution.rs

1use crate::records::selected_overload::SelectedOverload;
2use crate::type_aliases::constraint_v::ConstraintV;
3use crate::type_aliases::incompatibility_reason::IncompatibilityReason;
4use crate::type_aliases::type_id::TypeId;
5use alloc::vec::Vec;
6use luaur_common::records::dense_hash_set::DenseHashSet;
7
8#[derive(Debug, Clone)]
9pub struct OverloadResolution {
10    pub ok: Vec<TypeId>,
11    pub non_functions: Vec<TypeId>,
12    pub potential_overloads: Vec<(TypeId, Vec<ConstraintV>)>,
13    pub incompatible_overloads: Vec<(TypeId, IncompatibilityReason)>,
14    pub arity_mismatches: Vec<TypeId>,
15    pub metamethods: DenseHashSet<TypeId>,
16}