aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorPierre-Emmanuel Patry <pierre-emmanuel.patry@embecosm.com>2024-05-03 13:25:20 +0200
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-17 16:35:24 +0100
commitd75c82ef1750a60c6cbdd41f01ed814a07faaeec (patch)
tree45a97d10688c41393bcd9af9c16820c31e793b83 /gcc
parent16bf7555b6f4ab0d588ec26b7b1a9001ae59928f (diff)
downloadgcc-d75c82ef1750a60c6cbdd41f01ed814a07faaeec.zip
gcc-d75c82ef1750a60c6cbdd41f01ed814a07faaeec.tar.gz
gcc-d75c82ef1750a60c6cbdd41f01ed814a07faaeec.tar.bz2
gccrs: Change lookup_module function return type
Wrap the return type into an optional. gcc/rust/ChangeLog: * checks/errors/privacy/rust-visibility-resolver.cc: Update function call to match the new return type. * typecheck/rust-hir-type-check-path.cc (TypeCheckExpr::resolve_root_path): Likewise. * typecheck/rust-hir-type-check-type.cc (TypeCheckType::resolve_root_path): Likewise. * util/rust-hir-map.cc (Mappings::insert_module): Likewise. (Mappings::lookup_module): Change the function's return type. * 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/checks/errors/privacy/rust-visibility-resolver.cc16
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-path.cc2
-rw-r--r--gcc/rust/typecheck/rust-hir-type-check-type.cc2
-rw-r--r--gcc/rust/util/rust-hir-map.cc6
-rw-r--r--gcc/rust/util/rust-hir-map.h2
5 files changed, 13 insertions, 15 deletions
diff --git a/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc b/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
index 3066fee..464ce86 100644
--- a/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
+++ b/gcc/rust/checks/errors/privacy/rust-visibility-resolver.cc
@@ -85,17 +85,15 @@ VisibilityResolver::resolve_module_path (const HIR::SimplePath &restriction,
// these items as private?
return true;
- auto module = mappings.lookup_module (ref);
- if (!module)
+ if (auto module = mappings.lookup_module (ref))
{
- invalid_path.emit ();
- return false;
- }
+ // Fill in the resolved `DefId`
+ id = module.value ()->get_mappings ().get_defid ();
- // Fill in the resolved `DefId`
- id = module->get_mappings ().get_defid ();
-
- return true;
+ return true;
+ }
+ invalid_path.emit ();
+ return false;
}
bool
diff --git a/gcc/rust/typecheck/rust-hir-type-check-path.cc b/gcc/rust/typecheck/rust-hir-type-check-path.cc
index 0cc9f0e..c655209 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-path.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-path.cc
@@ -243,7 +243,7 @@ TypeCheckExpr::resolve_root_path (HIR::PathInExpression &expr, size_t *offset,
}
auto ref = hid.value ();
- auto seg_is_module = (nullptr != mappings.lookup_module (ref));
+ auto seg_is_module = mappings.lookup_module (ref).has_value ();
auto seg_is_crate = mappings.is_local_hirid_crate (ref);
if (seg_is_module || seg_is_crate)
{
diff --git a/gcc/rust/typecheck/rust-hir-type-check-type.cc b/gcc/rust/typecheck/rust-hir-type-check-type.cc
index eb4abbb..2a3e35c 100644
--- a/gcc/rust/typecheck/rust-hir-type-check-type.cc
+++ b/gcc/rust/typecheck/rust-hir-type-check-type.cc
@@ -391,7 +391,7 @@ TypeCheckType::resolve_root_path (HIR::TypePath &path, size_t *offset,
}
auto ref = hid.value ();
- auto seg_is_module = (nullptr != mappings.lookup_module (ref));
+ auto seg_is_module = mappings.lookup_module (ref).has_value ();
auto seg_is_crate = mappings.is_local_hirid_crate (ref);
if (seg_is_module || seg_is_crate)
{
diff --git a/gcc/rust/util/rust-hir-map.cc b/gcc/rust/util/rust-hir-map.cc
index 7c4fd1b..c77ffea 100644
--- a/gcc/rust/util/rust-hir-map.cc
+++ b/gcc/rust/util/rust-hir-map.cc
@@ -489,18 +489,18 @@ void
Mappings::insert_module (HIR::Module *module)
{
auto id = module->get_mappings ().get_hirid ();
- rust_assert (lookup_module (id) == nullptr);
+ rust_assert (!lookup_module (id));
hirModuleMappings[id] = module;
insert_node_to_hir (module->get_mappings ().get_nodeid (), id);
}
-HIR::Module *
+tl::optional<HIR::Module *>
Mappings::lookup_module (HirId id)
{
auto it = hirModuleMappings.find (id);
if (it == hirModuleMappings.end ())
- return nullptr;
+ return tl::nullopt;
return it->second;
}
diff --git a/gcc/rust/util/rust-hir-map.h b/gcc/rust/util/rust-hir-map.h
index da3aa9f..753e06f 100644
--- a/gcc/rust/util/rust-hir-map.h
+++ b/gcc/rust/util/rust-hir-map.h
@@ -138,7 +138,7 @@ public:
tl::optional<HIR::ImplBlock *> lookup_impl_block_type (HirId id);
void insert_module (HIR::Module *module);
- HIR::Module *lookup_module (HirId id);
+ tl::optional<HIR::Module *> lookup_module (HirId id);
void insert_hir_implitem (HirId parent_impl_id, HIR::ImplItem *item);
HIR::ImplItem *lookup_hir_implitem (HirId id, HirId *parent_impl_id);