diff options
Diffstat (limited to 'gcc/rust/util/rust-hir-map.cc')
-rw-r--r-- | gcc/rust/util/rust-hir-map.cc | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index c62c111..05b26d6 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -17,9 +17,11 @@ // <http://www.gnu.org/licenses/>. #include "rust-hir-map.h" +#include "optional.h" #include "rust-ast-full.h" #include "rust-diagnostics.h" #include "rust-hir-full.h" +#include "rust-item.h" #include "rust-macro-builtins.h" #include "rust-mapping-common.h" #include "rust-attribute-values.h" @@ -1159,6 +1161,23 @@ Mappings::lookup_module_children (NodeId module) } void +Mappings::insert_ast_module (AST::Module *module) +{ + rust_assert (modules.find (module->get_node_id ()) == modules.end ()); + modules[module->get_node_id ()] = module; +} + +tl::optional<AST::Module *> +Mappings::lookup_ast_module (NodeId id) +{ + auto it = modules.find (id); + if (it == modules.end ()) + return tl::nullopt; + + return {it->second}; +} + +void Mappings::insert_module_child_item (NodeId module, Resolver::CanonicalPath child) { |