about summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorNicholas Nethercote <nnethercote@mozilla.com>2019-02-05 15:18:29 +1100
committerNicholas Nethercote <nnethercote@mozilla.com>2019-02-05 15:18:29 +1100
commit970b5d189af48dd6ec26e90bb8d6d236824edf4b (patch)
treed2e00ee9e14277c62a121b8a5c1755639f48c4f9 /src/libsyntax/ext
parent372fe84a8349ab4a8693d656bd786a5a47e22a56 (diff)
downloadrust-970b5d189af48dd6ec26e90bb8d6d236824edf4b.tar.gz
rust-970b5d189af48dd6ec26e90bb8d6d236824edf4b.zip
Various improvements in `Folder` impls.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/expand.rs5
-rw-r--r--src/libsyntax/ext/placeholders.rs15
2 files changed, 6 insertions, 14 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 72e0a86bf59..2effd910e85 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -1247,10 +1247,7 @@ impl<'a, 'b> Folder for InvocationCollector<'a, 'b> {
     }
 
     fn fold_stmt(&mut self, stmt: ast::Stmt) -> SmallVec<[ast::Stmt; 1]> {
-        let mut stmt = match self.cfg.configure_stmt(stmt) {
-            Some(stmt) => stmt,
-            None => return SmallVec::new(),
-        };
+        let mut stmt = configure!(self, stmt);
 
         // we'll expand attributes on expressions separately
         if !stmt.is_expr() {
diff --git a/src/libsyntax/ext/placeholders.rs b/src/libsyntax/ext/placeholders.rs
index 3b0402d910a..0928bc80404 100644
--- a/src/libsyntax/ext/placeholders.rs
+++ b/src/libsyntax/ext/placeholders.rs
@@ -181,17 +181,12 @@ impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> {
 
     fn fold_block(&mut self, block: P<ast::Block>) -> P<ast::Block> {
         noop_fold_block(block, self).map(|mut block| {
-            let mut remaining_stmts = block.stmts.len();
-
-            block.stmts = block.stmts.move_flat_map(|mut stmt| {
-                remaining_stmts -= 1;
-
+            block.stmts = block.stmts.move_map(|mut stmt| {
                 if self.monotonic {
                     assert_eq!(stmt.id, ast::DUMMY_NODE_ID);
                     stmt.id = self.cx.resolver.next_node_id();
                 }
-
-                Some(stmt)
+                stmt
             });
 
             block
@@ -200,9 +195,9 @@ impl<'a, 'b> Folder for PlaceholderExpander<'a, 'b> {
 
     fn fold_mod(&mut self, module: ast::Mod) -> ast::Mod {
         let mut module = noop_fold_mod(module, self);
-        module.items = module.items.move_flat_map(|item| match item.node {
-            ast::ItemKind::Mac(_) if !self.cx.ecfg.keep_macs => None, // remove macro definitions
-            _ => Some(item),
+        module.items.retain(|item| match item.node {
+            ast::ItemKind::Mac(_) if !self.cx.ecfg.keep_macs => false, // remove macro definitions
+            _ => true,
         });
         module
     }