diff options
author | Philip Herron <philip.herron@embecosm.com> | 2020-12-21 18:32:15 +0000 |
---|---|---|
committer | Philip Herron <herron.philip@googlemail.com> | 2020-12-23 13:04:50 +0000 |
commit | aa2fbb5e48f6218035d7bde1336345cebf120d3e (patch) | |
tree | e69dd540813c69f43fc05a76d33395a896791292 /gcc/rust/resolve/rust-ast-resolve.cc | |
parent | b021811ab700156e1e3d56200d585b3180264f4f (diff) | |
download | gcc-aa2fbb5e48f6218035d7bde1336345cebf120d3e.zip gcc-aa2fbb5e48f6218035d7bde1336345cebf120d3e.tar.gz gcc-aa2fbb5e48f6218035d7bde1336345cebf120d3e.tar.bz2 |
Bring conditionals back since the HIR change.
Diffstat (limited to 'gcc/rust/resolve/rust-ast-resolve.cc')
-rw-r--r-- | gcc/rust/resolve/rust-ast-resolve.cc | 25 |
1 files changed, 23 insertions, 2 deletions
diff --git a/gcc/rust/resolve/rust-ast-resolve.cc b/gcc/rust/resolve/rust-ast-resolve.cc index ba4ee21..8370a5b 100644 --- a/gcc/rust/resolve/rust-ast-resolve.cc +++ b/gcc/rust/resolve/rust-ast-resolve.cc @@ -17,10 +17,11 @@ // <http://www.gnu.org/licenses/>. #include "rust-ast-resolve.h" -#include "rust-ast-resolve-toplevel.h" -#include "rust-ast-resolve-item.h" #include "rust-ast-full.h" #include "rust-tyty.h" +#include "rust-ast-resolve-toplevel.h" +#include "rust-ast-resolve-item.h" +#include "rust-ast-resolve-expr.h" #define MKBUILTIN_TYPE(_X, _R, _TY) \ do \ @@ -250,5 +251,25 @@ NameResolution::go (AST::Crate &crate) ResolveItem::go (it->get ()); } +// rust-ast-resolve-expr.h + +void +ResolveExpr::visit (AST::BlockExpr &expr) +{ + NodeId scope_node_id = expr.get_node_id (); + resolver->get_name_scope ().push (scope_node_id); + resolver->get_type_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 ()); + + expr.iterate_stmts ([&] (AST::Stmt *s) mutable -> bool { + ResolveStmt::go (s, s->get_node_id ()); + return true; + }); + + resolver->get_name_scope ().pop (); + resolver->get_type_scope ().pop (); +} + } // namespace Resolver } // namespace Rust |