Skip to main content

luaur_analysis/methods/
non_strict_context_remove.rs

1use crate::records::non_strict_context::NonStrictContext;
2use crate::type_aliases::def_id_def::DefId;
3
4use crate::functions::collect_operands::collect_operands;
5
6impl NonStrictContext {
7    pub fn remove(&mut self, def: &DefId) -> bool {
8        let mut defs: Vec<DefId> = Vec::new();
9        collect_operands(*def, &mut defs);
10        let mut result = true;
11        for def in defs {
12            let erased = self
13                .context
14                .remove(&(def as *const crate::records::def::Def));
15            result = result && erased.is_some();
16        }
17        result
18    }
19}