aboutsummaryrefslogtreecommitdiff
path: root/gcc/rust/resolve/rust-ast-resolve.cc
diff options
context:
space:
mode:
authorPhilip Herron <philip.herron@embecosm.com>2021-11-22 17:05:18 +0000
committerPhilip Herron <philip.herron@embecosm.com>2021-11-22 17:31:19 +0000
commita6cae6da5130f936356a1d3cb76224f8fba66503 (patch)
tree60ff8fe756224171f5104a65b664ac16f0790e39 /gcc/rust/resolve/rust-ast-resolve.cc
parent87da9922e66d64e2ef307d33076da86b8486bea0 (diff)
downloadgcc-a6cae6da5130f936356a1d3cb76224f8fba66503.zip
gcc-a6cae6da5130f936356a1d3cb76224f8fba66503.tar.gz
gcc-a6cae6da5130f936356a1d3cb76224f8fba66503.tar.bz2
Fix toplevel crate ribs id's
Toplevel ribs should be the same id of the Crate this allows is to scan all toplevel ribs simply by knowing the crate number.
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve.cc')
-rw-r--r--gcc/rust/resolve/rust-ast-resolve.cc10
1 files changed, 4 insertions, 6 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve.cc b/gcc/rust/resolve/rust-ast-resolve.cc
index 9a0d349..66553a6 100644
--- a/gcc/rust/resolve/rust-ast-resolve.cc
+++ b/gcc/rust/resolve/rust-ast-resolve.cc
@@ -313,14 +313,12 @@ NameResolution::Resolve (AST::Crate &crate)
void
NameResolution::go (AST::Crate &crate)
{
- // setup parent scoping for names
- resolver->get_name_scope ().push (crate.get_node_id ());
+ NodeId scope_node_id = crate.get_node_id ();
+ resolver->get_name_scope ().push (scope_node_id);
+ resolver->get_type_scope ().push (scope_node_id);
+ resolver->get_label_scope ().push (scope_node_id);
resolver->push_new_name_rib (resolver->get_name_scope ().peek ());
- // setup parent scoping for new types
- resolver->get_type_scope ().push (mappings->get_next_node_id ());
resolver->push_new_type_rib (resolver->get_type_scope ().peek ());
- // setup label scope
- resolver->get_label_scope ().push (mappings->get_next_node_id ());
resolver->push_new_label_rib (resolver->get_type_scope ().peek ());
// first gather the top-level namespace names then we drill down