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.h | |
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.h')
-rw-r--r-- | gcc/rust/util/rust-hir-map.h | 15 |
1 files changed, 12 insertions, 3 deletions
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h index 0bb870b..03bfd5f 100644 --- a/gcc/rust/util/rust-hir-map.h +++ b/gcc/rust/util/rust-hir-map.h @@ -19,6 +19,7 @@ #ifndef RUST_HIR_MAP_H #define RUST_HIR_MAP_H +#include "rust-optional.h" #include "rust-system.h" #include "rust-location.h" #include "rust-mapping-common.h" @@ -318,8 +319,11 @@ public: bool lookup_macro_def (NodeId id, AST::MacroRulesDefinition **def); - void insert_visibility (DefId id, Privacy::ModuleVisibility visibility); - bool lookup_visibility (DefId id, Privacy::ModuleVisibility *def); + void insert_visibility (NodeId id, Privacy::ModuleVisibility visibility); + bool lookup_visibility (NodeId id, Privacy::ModuleVisibility &def); + + void insert_module_child (NodeId module, NodeId child); + Optional<std::vector<NodeId> &> lookup_module_children (NodeId module); private: Mappings (); @@ -385,7 +389,12 @@ private: std::map<CrateNum, std::string> crate_names; // Low level visibility map for each DefId - std::map<DefId, Privacy::ModuleVisibility> visibility_map; + std::map<NodeId, Privacy::ModuleVisibility> visibility_map; + + // Module tree maps + + // Maps each module's node id to a list of its children + std::map<NodeId, std::vector<NodeId>> module_child_map; }; } // namespace Analysis |