Skip to main content

luaur_analysis/methods/
unifier_try_unify_unifier.rs

1//! Source: `Analysis/src/Unifier.cpp` (Unifier::tryUnify(TypeId,...), L385-390)
2use crate::records::unifier::Unifier;
3use crate::type_aliases::literal_properties::LiteralProperties;
4use crate::type_aliases::type_id::TypeId;
5
6impl Unifier {
7    /// `void Unifier::tryUnify(TypeId subTy, TypeId superTy, bool isFunctionCall, bool isIntersection, const LiteralProperties* literalProperties)`
8    pub fn try_unify_type_id_type_id_bool_bool_literal_properties_entry(
9        &mut self,
10        sub_ty: TypeId,
11        super_ty: TypeId,
12        is_function_call: bool,
13        is_intersection: bool,
14        literal_properties: Option<&LiteralProperties>,
15    ) {
16        unsafe {
17            (*self.shared_state).counters.iteration_count = 0;
18        }
19
20        self.try_unify_type_id_type_id_bool_bool_literal_properties(
21            sub_ty,
22            super_ty,
23            is_function_call,
24            is_intersection,
25            literal_properties,
26        );
27    }
28}