Skip to main content

luaur_analysis/methods/
constraint_solver_deprecate_d_block.rs

1use crate::records::constraint::Constraint;
2use crate::records::constraint_solver::ConstraintSolver;
3use crate::type_aliases::blocked_constraint_id::BlockedConstraintId;
4use luaur_common::records::dense_hash_set::DenseHashSet;
5
6impl ConstraintSolver {
7    pub fn deprecate_d_block(
8        &mut self,
9        target: BlockedConstraintId,
10        constraint: *const Constraint,
11    ) -> bool {
12        let block_vec = self
13            .deprecated_blocked
14            .entry(target)
15            .or_insert_with(|| DenseHashSet::new(core::ptr::null()));
16
17        if block_vec.find(&constraint).is_some() {
18            return false;
19        }
20
21        block_vec.insert(constraint);
22
23        let count = self
24            .deprecated_blocked_constraints
25            .entry(constraint)
26            .or_insert(0);
27        *count += 1;
28
29        true
30    }
31}