https://gcc.gnu.org/g:4351f509956836393b45e3b88878c353c4b20d96

commit r16-2847-g4351f509956836393b45e3b88878c353c4b20d96
Author: Owen Avery <powerboat9.ga...@gmail.com>
Date:   Fri May 23 16:29:59 2025 -0400

    gccrs: nr2.0: Adjust alternate identifier handling
    
    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.ga...@gmail.com>

Diff:
---
 gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc 
b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
index 3c1c346cf147..62829e08a559 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -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
     {

Reply via email to