From: Zhi Heng <[email protected]>
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 <[email protected]>
---
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