luaur_analysis/methods/
constraint_graph_inherit_blocks.rs1use crate::records::constraint_graph::ConstraintGraph;
2use crate::type_aliases::constraint_vertex::ConstraintVertex;
3
4impl ConstraintGraph {
5 pub fn inherit_blocks(
6 &mut self,
7 existing_vertex: ConstraintVertex,
8 new_vertex: ConstraintVertex,
9 ) {
10 let existing_reverse_deps = self.find_reverse_dependency_list(existing_vertex.clone());
11 let mut new_reverse_deps = self.find_reverse_dependency_list(new_vertex.clone());
12
13 let existing_reverse_deps_ref = unsafe { existing_reverse_deps.as_ref() };
14
15 for existing_rdep in existing_reverse_deps_ref.order.iter() {
16 let existing_rdep = existing_rdep.clone();
17
18 unsafe { new_reverse_deps.as_mut() }.insert(existing_rdep.clone());
19
20 let mut new_deps = self.find_dependency_list(existing_rdep.clone());
21 unsafe { new_deps.as_mut() }.insert(new_vertex.clone());
22 }
23 }
24}