aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorOwen Avery <powerboat9.gamer@gmail.com>2024-10-15 15:34:28 -0400
committerArthur Cohen <arthur.cohen@embecosm.com>2025-03-19 15:32:17 +0100
commit2110efcc2a62284efe196d68b614f7aa963c4611 (patch)
tree2c10adc492096a0210ac2bfbcea445cc67156fe8 /gcc
parent225748e0f12ea94181560d9cc6bc18a877e6addc (diff)
downloadgcc-2110efcc2a62284efe196d68b614f7aa963c4611.zip
gcc-2110efcc2a62284efe196d68b614f7aa963c4611.tar.gz
gcc-2110efcc2a62284efe196d68b614f7aa963c4611.tar.bz2
gccrs: Use name resolver 2.0 in MarkLive
gcc/rust/ChangeLog: * checks/lints/rust-lint-marklive.cc (MarkLive::visit_path_segment): Use name resolver 2.0 when enabled. (MarkLive::visit): Likewise. Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
Diffstat (limited to 'gcc')
-rw-r--r--gcc/rust/checks/lints/rust-lint-marklive.cc31
1 files changed, 27 insertions, 4 deletions
diff --git a/gcc/rust/checks/lints/rust-lint-marklive.cc b/gcc/rust/checks/lints/rust-lint-marklive.cc
index 24df933..ca26a66 100644
--- a/gcc/rust/checks/lints/rust-lint-marklive.cc
+++ b/gcc/rust/checks/lints/rust-lint-marklive.cc
@@ -155,7 +155,17 @@ MarkLive::visit_path_segment (HIR::PathExprSegment seg)
//
// We should mark them alive all and ignoring other kind of segments.
// If the segment we dont care then just return false is fine
- if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
+ if (flag_name_resolution_2_0)
+ {
+ auto &nr_ctx
+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
+
+ if (auto id = nr_ctx.lookup (ast_node_id))
+ ref_node_id = *id;
+ else
+ return false;
+ }
+ else if (!resolver->lookup_resolved_name (ast_node_id, &ref_node_id))
{
if (!resolver->lookup_resolved_type (ast_node_id, &ref_node_id))
return false;
@@ -232,9 +242,22 @@ MarkLive::visit (HIR::TupleIndexExpr &expr)
void
MarkLive::visit (HIR::TypeAlias &alias)
{
- NodeId ast_node_id;
- resolver->lookup_resolved_type (
- alias.get_type_aliased ()->get_mappings ().get_nodeid (), &ast_node_id);
+ NodeId ast_node_id = UNKNOWN_NODEID;
+ if (flag_name_resolution_2_0)
+ {
+ auto &nr_ctx
+ = Resolver2_0::ImmutableNameResolutionContext::get ().resolver ();
+
+ if (auto id = nr_ctx.lookup (
+ alias.get_type_aliased ()->get_mappings ().get_nodeid ()))
+ ast_node_id = *id;
+ }
+ else
+ {
+ resolver->lookup_resolved_type (
+ alias.get_type_aliased ()->get_mappings ().get_nodeid (), &ast_node_id);
+ }
+
if (auto hid = mappings.lookup_node_to_hir (ast_node_id))
mark_hir_id (*hid);
else