aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorArthur Cohen <arthur.cohen@embecosm.com>2023-03-28 13:55:19 +0200
committerPhilip Herron <philip.herron@embecosm.com>2023-03-29 21:14:15 +0000
commitff4d4570b44baf6a106cb0cfde3a1fe9ff0ed09f (patch)
treef98c53ac0a4a6f4d9fdb9884c8cfaecc863cef34
parent9af9a69367f7f714d303aa35f8d39d27c3c9df54 (diff)
downloadgcc-ff4d4570b44baf6a106cb0cfde3a1fe9ff0ed09f.zip
gcc-ff4d4570b44baf6a106cb0cfde3a1fe9ff0ed09f.tar.gz
gcc-ff4d4570b44baf6a106cb0cfde3a1fe9ff0ed09f.tar.bz2
resolver: Allow SimplePath to resolve to their root segment
SimplePath are allowed to resolve to their root segment even if it is `crate` or `super` when checking visibilities. We now have to make sure that this is allowed everywhere a SimplePath is kept. gcc/rust/ChangeLog: * resolve/rust-ast-resolve-path.cc (ResolvePath::resolve_path): Set resolved_node_id when visiting root segment of SimplePath.
-rw-r--r--gcc/rust/resolve/rust-ast-resolve-path.cc4
1 files changed, 4 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-path.cc b/gcc/rust/resolve/rust-ast-resolve-path.cc
index d8e6f90..ab93333 100644
--- a/gcc/rust/resolve/rust-ast-resolve-path.cc
+++ b/gcc/rust/resolve/rust-ast-resolve-path.cc
@@ -283,6 +283,8 @@ ResolvePath::resolve_path (AST::SimplePath *expr)
previous_resolved_node_id = module_scope_id;
resolver->insert_resolved_name (segment.get_node_id (),
module_scope_id);
+ resolved_node_id = module_scope_id;
+
continue;
}
else if (segment.is_super_path_seg ())
@@ -298,6 +300,8 @@ ResolvePath::resolve_path (AST::SimplePath *expr)
previous_resolved_node_id = module_scope_id;
resolver->insert_resolved_name (segment.get_node_id (),
module_scope_id);
+ resolved_node_id = module_scope_id;
+
continue;
}