diff options
author | Arthur Cohen <arthur.cohen@embecosm.com> | 2023-05-22 11:22:45 +0200 |
---|---|---|
committer | CohenArthur <arthur.cohen@embecosm.com> | 2023-05-24 09:33:42 +0000 |
commit | 058682f736b6a0936480bbefb35c0fe0e97a00f5 (patch) | |
tree | a88782ae29f84781e14bd98f4a87905f98a09dd3 /gcc | |
parent | 6521333e402a2f71e34591666ae697cab7af7316 (diff) | |
download | gcc-058682f736b6a0936480bbefb35c0fe0e97a00f5.zip gcc-058682f736b6a0936480bbefb35c0fe0e97a00f5.tar.gz gcc-058682f736b6a0936480bbefb35c0fe0e97a00f5.tar.bz2 |
enr: Cleanup #[macro_use] accumulation
gcc/rust/ChangeLog:
* resolve/rust-early-name-resolver.cc (EarlyNameResolver::go): Cleanup
order of calls when accumulating #[macro_use] macros.
(EarlyNameResolver::visit): Likewise.
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/rust/resolve/rust-early-name-resolver.cc | 38 |
1 files changed, 16 insertions, 22 deletions
diff --git a/gcc/rust/resolve/rust-early-name-resolver.cc b/gcc/rust/resolve/rust-early-name-resolver.cc index 85fd71e..f6ec8c7 100644 --- a/gcc/rust/resolve/rust-early-name-resolver.cc +++ b/gcc/rust/resolve/rust-early-name-resolver.cc @@ -85,18 +85,15 @@ EarlyNameResolver::go (AST::Crate &crate) scoped (crate.get_node_id (), [&items, &new_items, this] { for (auto &&item : items) { + auto new_macros = std::vector<std::unique_ptr<AST::Item>> (); + if (item->get_ast_kind () == AST::Kind::MODULE) - { - auto macros = accumulate_escaped_macros ( - *static_cast<AST::Module *> (item.get ())); - new_items.emplace_back (std::move (item)); - std::move (macros.begin (), macros.end (), - std::back_inserter (new_items)); - } - else - { - new_items.emplace_back (std::move (item)); - } + new_macros = accumulate_escaped_macros ( + *static_cast<AST::Module *> (item.get ())); + + new_items.emplace_back (std::move (item)); + std::move (new_macros.begin (), new_macros.end (), + std::back_inserter (new_items)); } }); @@ -636,18 +633,15 @@ EarlyNameResolver::visit (AST::Module &module) scoped (module.get_node_id (), [&items, &new_items, this] { for (auto &&item : items) { + auto new_macros = std::vector<std::unique_ptr<AST::Item>> (); + if (item->get_ast_kind () == AST::Kind::MODULE) - { - auto macros = accumulate_escaped_macros ( - *static_cast<AST::Module *> (item.get ())); - new_items.emplace_back (std::move (item)); - std::move (macros.begin (), macros.end (), - std::back_inserter (new_items)); - } - else - { - new_items.emplace_back (std::move (item)); - } + new_macros = accumulate_escaped_macros ( + *static_cast<AST::Module *> (item.get ())); + + new_items.emplace_back (std::move (item)); + std::move (new_macros.begin (), new_macros.end (), + std::back_inserter (new_items)); } }); |