aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/util/rust-hir-map.h
diff options
context:
space:
mode:
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