]> git.ipfire.org Git - thirdparty/gcc.git/commitdiff
gccrs: Implement name resolution for IdentifierPattern's subpattern
authorZhi Heng <yapzhhg@gmail.com>
Fri, 13 Jun 2025 14:19:33 +0000 (22:19 +0800)
committerArthur Cohen <arthur.cohen@embecosm.com>
Tue, 5 Aug 2025 14:36:49 +0000 (16:36 +0200)
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 <yapzhhg@gmail.com>
gcc/rust/resolve/rust-ast-resolve-pattern.cc
gcc/rust/resolve/rust-late-name-resolver-2.0.cc

index 2b5e2bf97eb978fbaa576b7ecbfae7c45eedfa8d..fce45bcf1e62dc22ccc5d44ffb4bf1250abda80f 100644 (file)
@@ -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 (),
index 62829e08a5591c0c3bf046894a338f6349421319..5f486538ed6f70f189ebf097252776a6aa2aec47 100644 (file)
@@ -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 ());