From: Zhi Heng <yapz...@gmail.com>

gcc/rust/ChangeLog:

        * resolve/rust-ast-resolve-pattern.cc: Implement name resolution for
                IdentifierPattern's subpattern.
        * resolve/rust-late-name-resolver-2.0.cc: Ditto, but for nr2.

Signed-off-by: Yap Zhi Heng <yapz...@gmail.com>
---
 gcc/rust/resolve/rust-ast-resolve-pattern.cc    | 5 +++++
 gcc/rust/resolve/rust-late-name-resolver-2.0.cc | 5 +++++
 2 files changed, 10 insertions(+)

diff --git a/gcc/rust/resolve/rust-ast-resolve-pattern.cc 
b/gcc/rust/resolve/rust-ast-resolve-pattern.cc
index 2b5e2bf97eb..fce45bcf1e6 100644
--- a/gcc/rust/resolve/rust-ast-resolve-pattern.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-pattern.cc
@@ -62,6 +62,11 @@ PatternDeclaration::go (AST::Pattern &pattern, Rib::ItemType 
type,
 void
 PatternDeclaration::visit (AST::IdentifierPattern &pattern)
 {
+  if (pattern.has_subpattern ())
+    {
+      pattern.get_subpattern ().accept_vis (*this);
+    }
+
   Mutability mut = pattern.get_is_mut () ? Mutability::Mut : Mutability::Imm;
   add_new_binding (pattern.get_ident (), pattern.get_node_id (),
                   BindingTypeInfo (mut, pattern.get_is_ref (),
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 62829e08a55..5f486538ed6 100644
--- a/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
+++ b/gcc/rust/resolve/rust-late-name-resolver-2.0.cc
@@ -251,6 +251,11 @@ visit_identifier_as_pattern (NameResolutionContext &ctx,
 void
 Late::visit (AST::IdentifierPattern &identifier)
 {
+  if (identifier.has_subpattern ())
+    {
+      DefaultResolver::visit (identifier.get_subpattern ());
+    }
+
   visit_identifier_as_pattern (ctx, identifier.get_ident (),
                               identifier.get_locus (),
                               identifier.get_node_id ());
-- 
2.49.0

Reply via email to