From aec1942c844fbd101958156f0027393f00a60e63 Mon Sep 17 00:00:00 2001 From: Zhi Heng Date: Fri, 13 Jun 2025 22:19:33 +0800 Subject: [PATCH] gccrs: Implement name resolution for IdentifierPattern's subpattern 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 --- 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.47.3