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