aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/rust/util/rust-hir-map.cc10
-rw-r--r--gcc/rust/util/rust-hir-map.h2
2 files changed, 5 insertions, 7 deletions
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index 06f3e7a..6d97771 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -805,17 +805,15 @@ Mappings::lookup_location (HirId id)
return it->second;
}
-bool
-Mappings::resolve_nodeid_to_stmt (NodeId id, HIR::Stmt **stmt)
+tl::optional<HIR::Stmt *>
+Mappings::resolve_nodeid_to_stmt (NodeId id)
{
auto it = nodeIdToHirMappings.find (id);
if (it == nodeIdToHirMappings.end ())
- return false;
+ return tl::nullopt;
HirId resolved = it->second;
- auto resolved_stmt = lookup_hir_stmt (resolved);
- *stmt = resolved_stmt;
- return resolved_stmt != nullptr;
+ return {lookup_hir_stmt (resolved)};
}
void
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h
index 753b2e0..039ace5 100644
--- a/gcc/rust/util/rust-hir-map.h
+++ b/gcc/rust/util/rust-hir-map.h
@@ -176,7 +176,7 @@ public:
void insert_location (HirId id, location_t locus);
location_t lookup_location (HirId id);
- bool resolve_nodeid_to_stmt (NodeId id, HIR::Stmt **stmt);
+ tl::optional<HIR::Stmt *> resolve_nodeid_to_stmt (NodeId id);
std::set<HirId> &get_hirids_within_crate (CrateNum crate)
{