Skip to main content

luaur_analysis/methods/
constraint_solver_try_dispatch_constraint_solver_alt_c.rs

1use crate::records::constraint::Constraint;
2use crate::records::constraint_solver::ConstraintSolver;
3use crate::records::pack_subtype_constraint::PackSubtypeConstraint;
4use crate::type_aliases::constraint_v::ConstraintV;
5use core::ptr::NonNull;
6
7impl ConstraintSolver {
8    pub fn try_dispatch_pack_subtype_constraint_not_null_constraint(
9        &mut self,
10        c: &PackSubtypeConstraint,
11        constraint: *const Constraint,
12    ) -> bool {
13        if self.is_blocked_type_pack_id(c.sub_pack) {
14            return self.block_type_pack_id_not_null_constraint(c.sub_pack, constraint);
15        } else if self.is_blocked_type_pack_id(c.super_pack) {
16            return self.block_type_pack_id_not_null_constraint(c.super_pack, constraint);
17        }
18
19        self.constraint_solver_unify(constraint, c.sub_pack, c.super_pack);
20
21        true
22    }
23}