diff options
author | Philip Herron <philip.herron@embecosm.com> | 2021-02-09 18:26:13 +0000 |
---|---|---|
committer | Philip Herron <herron.philip@googlemail.com> | 2021-02-10 18:10:57 +0000 |
commit | 016c40bedc7e3f53e2c413895f77c0d9f723eb3c (patch) | |
tree | acc94919d37d203dbfa251af2c844a18ace0ba81 /gcc/rust/resolve/rust-ast-resolve-item.h | |
parent | a3a343c8853cb0967b21e8da23a829665208b25d (diff) | |
download | gcc-016c40bedc7e3f53e2c413895f77c0d9f723eb3c.zip gcc-016c40bedc7e3f53e2c413895f77c0d9f723eb3c.tar.gz gcc-016c40bedc7e3f53e2c413895f77c0d9f723eb3c.tar.bz2 |
Introduce new label namesapce for name resolution
Labels are in their own namesapce so they do not affect types and normal
values within a program.
Addresses #107
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve-item.h')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve-item.h | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve-item.h b/gcc/rust/resolve/rust-ast-resolve-item.h index 8b6227e..f5dc579 100644 --- a/gcc/rust/resolve/rust-ast-resolve-item.h +++ b/gcc/rust/resolve/rust-ast-resolve-item.h @@ -88,8 +88,10 @@ public: NodeId scope_node_id = function.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 ()); resolver->push_new_type_rib (resolver->get_type_scope ().peek ()); + resolver->push_new_label_rib (resolver->get_type_scope ().peek ()); // we make a new scope so the names of parameters are resolved and shadowed // correctly @@ -111,6 +113,7 @@ public: resolver->get_name_scope ().pop (); resolver->get_type_scope ().pop (); + resolver->get_label_scope ().pop (); } void visit (AST::InherentImpl &impl_block) |