diff options
author | Marc Poulhiès <dkm@kataplop.net> | 2021-08-12 13:42:01 +0200 |
---|---|---|
committer | Marc <dkm@kataplop.net> | 2021-08-18 22:59:36 +0200 |
commit | fc0c2dcf34b46affddc871962525c0b062571490 (patch) | |
tree | 71e8daf1a1e6da1d25500f1c1b80d8530b960aaa /gcc | |
parent | 9d30105d752530c7dc6abe60455b3a8847e50922 (diff) | |
download | gcc-fc0c2dcf34b46affddc871962525c0b062571490.zip gcc-fc0c2dcf34b46affddc871962525c0b062571490.tar.gz gcc-fc0c2dcf34b46affddc871962525c0b062571490.tar.bz2 |
Add module map in HIR maps
Add module map and required methods to access it.
refs #432
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/util/rust-hir-map.cc | 22 | ||||
-rw-r--r-- | gcc/rust/util/rust-hir-map.h | 4 |
2 files changed, 26 insertions, 0 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc index 0f8f902..d544042 100644 --- a/gcc/rust/util/rust-hir-map.cc +++ b/gcc/rust/util/rust-hir-map.cc @@ -325,6 +325,28 @@ Mappings::lookup_hir_impl_block (CrateNum crateNum, HirId id) } void +Mappings::insert_module (CrateNum crateNum, HirId id, HIR::Module *module) +{ + rust_assert (lookup_module (crateNum, id) == nullptr); + + hirModuleMappings[crateNum][id] = module; +} + +HIR::Module * +Mappings::lookup_module (CrateNum crateNum, HirId id) +{ + auto it = hirModuleMappings.find (crateNum); + if (it == hirModuleMappings.end ()) + return nullptr; + + auto iy = it->second.find (id); + if (iy == it->second.end ()) + return nullptr; + + return iy->second; +} + +void Mappings::insert_hir_implitem (CrateNum crateNum, HirId id, HirId parent_impl_id, HIR::ImplItem *item) { diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h index 5c839b0..2366724 100644 --- a/gcc/rust/util/rust-hir-map.h +++ b/gcc/rust/util/rust-hir-map.h @@ -131,6 +131,9 @@ public: HIR::ImplBlock *item); HIR::ImplBlock *lookup_hir_impl_block (CrateNum crateNum, HirId id); + void insert_module (CrateNum crateNum, HirId id, HIR::Module *module); + HIR::Module *lookup_module (CrateNum crateNum, HirId id); + void insert_hir_implitem (CrateNum crateNum, HirId id, HirId parent_impl_id, HIR::ImplItem *item); HIR::ImplItem *lookup_hir_implitem (CrateNum crateNum, HirId id, @@ -279,6 +282,7 @@ private: std::map<DefId, HIR::Item *> defIdMappings; std::map<CrateNum, std::map<LocalDefId, HIR::Item *> > localDefIdMappings; + std::map<CrateNum, std::map<HirId, HIR::Module *> > hirModuleMappings; std::map<CrateNum, std::map<HirId, HIR::Item *> > hirItemMappings; std::map<CrateNum, std::map<HirId, HIR::Type *> > hirTypeMappings; std::map<CrateNum, std::map<HirId, HIR::Expr *> > hirExprMappings; |