aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-hir-map.h
diff options
context:
space:
mode:
authorbors[bot] <26634292+bors[bot]@users.noreply.github.com>2022-05-17 10:11:04 +0000
committerGitHub <noreply@github.com>2022-05-17 10:11:04 +0000
commit8cad07cfd2244ad9a40027a4306b81b4553a4797 (patch)
treece267318444308626518420adf10b563c2bad96c /gcc/rust/util/rust-hir-map.h
parente4213b9568ae8cb8a4e31326e0e78c79db0a99cc (diff)
parent48fc2df91b07709f41ab80499a661ac9f12f3be3 (diff)
downloadgcc-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.h15
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