aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve-pattern.h
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-pattern.h')
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-pattern.h18
1 files changed, 3 insertions, 15 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-pattern.h b/gcc/rust/resolve/rust-ast-resolve-pattern.h
index 147bf72..0734908 100644
--- a/gcc/rust/resolve/rust-ast-resolve-pattern.h
+++ b/gcc/rust/resolve/rust-ast-resolve-pattern.h
@@ -33,7 +33,6 @@ public:
static void go (AST::Pattern *pattern, NodeId parent)
{
ResolvePattern resolver (parent);
-
pattern->accept_vis (resolver);
if (resolver.resolved_node == UNKNOWN_NODEID)
{
@@ -42,12 +41,10 @@ public:
}
};
- ~ResolvePattern () {}
-
void visit (AST::IdentifierPattern &pattern) override
{
- if (resolver->get_name_scope ().lookup (pattern.get_ident (),
- &resolved_node))
+ if (resolver->get_name_scope ().lookup (
+ CanonicalPath (pattern.get_ident ()), &resolved_node))
{
resolver->insert_resolved_name (pattern.get_node_id (), resolved_node);
resolver->insert_new_definition (pattern.get_node_id (),
@@ -68,23 +65,14 @@ public:
static void go (AST::Pattern *pattern, NodeId parent)
{
PatternDeclaration resolver (parent);
-
pattern->accept_vis (resolver);
- if (resolver.resolved_node != UNKNOWN_NODEID)
- {
- // print both locations?!
- rust_error_at (resolver.locus, "duplicate pattern %s",
- pattern->as_string ().c_str ());
- }
};
- ~PatternDeclaration () {}
-
void visit (AST::IdentifierPattern &pattern) override
{
// if we have a duplicate id this then allows for shadowing correctly
// as new refs to this decl will match back here so it is ok to overwrite
- resolver->get_name_scope ().insert (pattern.get_ident (),
+ resolver->get_name_scope ().insert (CanonicalPath (pattern.get_ident ()),
pattern.get_node_id (),
pattern.get_locus ());
resolver->insert_new_definition (pattern.get_node_id (),