diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2022-05-17 10:11:04 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-05-17 10:11:04 +0000 |
commit | 8cad07cfd2244ad9a40027a4306b81b4553a4797 (patch) | |
tree | ce267318444308626518420adf10b563c2bad96c /gcc/rust/util/rust-hir-map.cc | |
parent | e4213b9568ae8cb8a4e31326e0e78c79db0a99cc (diff) | |
parent | 48fc2df91b07709f41ab80499a661ac9f12f3be3 (diff) | |
download | gcc-8cad07cfd2244ad9a40027a4306b81b4553a4797.zip gcc-8cad07cfd2244ad9a40027a4306b81b4553a4797.tar.gz gcc-8cad07cfd2244ad9a40027a4306b81b4553a4797.tar.bz2 |
Merge #1246
1246: Report simple privacy violations r=CohenArthur a=CohenArthur
This adds a base visitor for reporting basic privacy violations. For now, only function calls are implemented.
Co-authored-by: Arthur Cohen <arthur.cohen@embecosm.com>
Diffstat (limited to 'gcc/rust/util/rust-hir-map.cc')
-rw-r--r-- | gcc/rust/util/rust-hir-map.cc | 26 |
1 files changed, 23 insertions, 3 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index 66d3e41..934331b 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -832,21 +832,41 @@ Mappings::lookup_macro_def (NodeId id, AST::MacroRulesDefinition **def) } void -Mappings::insert_visibility (DefId id, Privacy::ModuleVisibility visibility) +Mappings::insert_visibility (NodeId id, Privacy::ModuleVisibility visibility) { visibility_map.insert ({id, visibility}); } bool -Mappings::lookup_visibility (DefId id, Privacy::ModuleVisibility *def) +Mappings::lookup_visibility (NodeId id, Privacy::ModuleVisibility &def) { auto it = visibility_map.find (id); if (it == visibility_map.end ()) return false; - *def = it->second; + def = it->second; return true; } +void +Mappings::insert_module_child (NodeId module, NodeId child) +{ + auto it = module_child_map.find (module); + if (it == module_child_map.end ()) + module_child_map.insert ({module, {child}}); + else + it->second.emplace_back (child); +} + +Optional<std::vector<NodeId> &> +Mappings::lookup_module_children (NodeId module) +{ + auto it = module_child_map.find (module); + if (it == module_child_map.end ()) + return Optional<std::vector<NodeId> &>::none (); + + return Optional<std::vector<NodeId> &>::some (it->second); +} + } // namespace Analysis } // namespace Rust |