Skip to main content

luaur_analysis/methods/
constraint_graph_copy_dependencies_of.rs

1use crate::records::constraint_graph::ConstraintGraph;
2use crate::records::reference_count_initializer::ReferenceCountInitializer;
3use crate::records::type_ids::TypeIds;
4use crate::type_aliases::constraint_vertex::ConstraintVertex;
5use crate::type_aliases::type_id::TypeId;
6use crate::type_aliases::type_pack_id::TypePackId;
7use crate::type_aliases::type_pack_ids::TypePackIds;
8
9impl ConstraintGraph {
10    pub fn copy_dependencies_of_type_id(&mut self, source: TypeId, target: TypeId) {
11        let source_dependencies = self.find_dependency_list(ConstraintVertex::V0(source));
12        let mut mutated_types = TypeIds::type_ids();
13        let mut mutated_type_packs = TypePackIds::new(core::ptr::null_mut());
14
15        let _rci =
16            ReferenceCountInitializer::reference_count_initializer_reference_count_initializer(
17                &mut mutated_types as *mut TypeIds,
18                &mut mutated_type_packs as *mut TypePackIds,
19            );
20
21        self.copy_dependencies_to_reachable_types(
22            None,
23            source_dependencies,
24            mutated_types,
25            mutated_type_packs,
26        );
27
28        let _ = target;
29    }
30
31    pub fn copy_dependencies_of_type_pack_id(&mut self, source: TypePackId, target: TypePackId) {
32        let source_dependencies = self.find_dependency_list(ConstraintVertex::V1(source));
33        let mut mutated_types = TypeIds::type_ids();
34        let mut mutated_type_packs = TypePackIds::new(core::ptr::null_mut());
35
36        let _rci =
37            ReferenceCountInitializer::reference_count_initializer_reference_count_initializer(
38                &mut mutated_types as *mut TypeIds,
39                &mut mutated_type_packs as *mut TypePackIds,
40            );
41
42        self.copy_dependencies_to_reachable_types(
43            None,
44            source_dependencies,
45            mutated_types,
46            mutated_type_packs,
47        );
48
49        let _ = target;
50    }
51}