]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: nr2.0: Adjust alternate identifier handling
authorOwen Avery <powerboat9.gamer@gmail.com>
Fri, 23 May 2025 20:29:59 +0000 (16:29 -0400)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 5 Aug 2025 14:36:46 +0000 (16:36 +0200)
gcc/rust/ChangeLog:

* resolve/rust-late-name-resolver-2.0.cc
(visit_identifier_as_pattern): Make sure to map identifiers
inside or-bindings to prior identifiers.

Signed-off-by: Owen Avery <powerboat9.gamer@gmail.com>
gcc/rust/resolve/rust-late-name-resolver-2.0.cc

index 3c1c346cf1472b712320652dead301406e405b13..62829e08a5591c0c3bf046894a338f6349421319 100644 (file)
@@ -236,8 +236,9 @@ visit_identifier_as_pattern (NameResolutionContext &ctx,
 
   if (ctx.bindings.peek ().is_or_bound (ident))
     {
-      // FIXME: map usage instead
-      std::ignore = ctx.values.insert_shadowable (ident, node_id);
+      auto res = ctx.values.get (ident);
+      rust_assert (res.has_value () && !res->is_ambiguous ());
+      ctx.map_usage (Usage (node_id), Definition (res->get_node_id ()));
     }
   else
     {