aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-05-02 11:43:02 +0200
committerP-E-P <32375388+P-E-P@users.noreply.github.com>2024-05-17 15:28:30 +0000
commita83bc198e19a99d9f266dbb77deb5a7a5200f53f (patch)
treedb67da4334d9666a4c7bc57114f0f07736f7ab13 /gcc
parentd1f2064d643cf9e8865641746e3cf907b276d234 (diff)
downloadgcc-a83bc198e19a99d9f266dbb77deb5a7a5200f53f.zip
gcc-a83bc198e19a99d9f266dbb77deb5a7a5200f53f.tar.gz
gcc-a83bc198e19a99d9f266dbb77deb5a7a5200f53f.tar.bz2
Change lookup_local_defid return type to optional
Make the API more convenient by changing the function's return type. We can now differentiate between a stored null pointer and a missing value. gcc/rust/ChangeLog: * util/rust-hir-map.cc (Mappings::insert_defid_mapping): Adapt call to new return type. (Mappings::insert_local_defid_mapping): Likewise. (Mappings::lookup_local_defid): Change return type to wrap it with an optional. * util/rust-hir-map.h: Update the function's prototype. Signed-off-by: Pierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/util/rust-hir-map.cc12
-rw-r--r--gcc/rust/util/rust-hir-map.h3
2 files changed, 8 insertions, 7 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index 64f2f5c..798f457 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -313,7 +313,7 @@ Mappings::insert_defid_mapping (DefId id, HIR::Item *item)
LocalDefId local_def_id = id.localDefId;
rust_assert (!lookup_defid (id));
- rust_assert (lookup_local_defid (crate_num, local_def_id) == nullptr);
+ rust_assert (!lookup_local_defid (crate_num, local_def_id));
rust_assert (lookup_trait_item_defid (id) == nullptr);
defIdMappings[id] = item;
@@ -337,7 +337,7 @@ Mappings::insert_defid_mapping (DefId id, HIR::TraitItem *item)
LocalDefId local_def_id = id.localDefId;
rust_assert (!lookup_defid (id));
- rust_assert (lookup_local_defid (crate_num, local_def_id) == nullptr);
+ rust_assert (!lookup_local_defid (crate_num, local_def_id));
rust_assert (lookup_trait_item_defid (id) == nullptr);
defIdTraitItemMappings[id] = item;
@@ -718,20 +718,20 @@ void
Mappings::insert_local_defid_mapping (CrateNum crateNum, LocalDefId id,
HIR::Item *item)
{
- rust_assert (lookup_local_defid (crateNum, id) == nullptr);
+ rust_assert (!lookup_local_defid (crateNum, id));
localDefIdMappings[crateNum][id] = item;
}
-HIR::Item *
+tl::optional<HIR::Item *>
Mappings::lookup_local_defid (CrateNum crateNum, LocalDefId id)
{
auto it = localDefIdMappings.find (crateNum);
if (it == localDefIdMappings.end ())
- return nullptr;
+ return tl::nullopt;
auto iy = it->second.find (id);
if (iy == it->second.end ())
- return nullptr;
+ return tl::nullopt;
return iy->second;
}
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h
index f7d99d1..e4e7f55 100644
--- a/gcc/rust/util/rust-hir-map.h
+++ b/gcc/rust/util/rust-hir-map.h
@@ -112,7 +112,8 @@ public:
void insert_local_defid_mapping (CrateNum crateNum, LocalDefId id,
HIR::Item *item);
- HIR::Item *lookup_local_defid (CrateNum crateNum, LocalDefId id);
+ tl::optional<HIR::Item *> lookup_local_defid (CrateNum crateNum,
+ LocalDefId id);
void insert_hir_item (HIR::Item *item);
tl::optional<HIR::Item *> lookup_hir_item (HirId id);