about summary refs log tree commit diff
path: root/src/libsyntax
diff options
context:
space:
mode:
authorJohn Clements <clements@racket-lang.org>2014-06-26 13:18:52 -0700
committerJohn Clements <clements@racket-lang.org>2014-06-27 21:41:16 -0700
commit84e8143c4f423011cd337d2a7bfdc54a753eea81 (patch)
tree5e4340f8863b3884bbd0474dd4568b42768b88e5 /src/libsyntax
parentc956f76c3c8bf42aa768c80e16ed16a3d7d370ea (diff)
downloadrust-84e8143c4f423011cd337d2a7bfdc54a753eea81.tar.gz
rust-84e8143c4f423011cd337d2a7bfdc54a753eea81.zip
get rid of needless wrapper function
Diffstat (limited to 'src/libsyntax')
-rw-r--r--src/libsyntax/ext/expand.rs22
1 files changed, 8 insertions, 14 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index 11f50d685f8..073de40382a 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -251,7 +251,7 @@ fn expand_loop_block(loop_block: P<Block>,
             // the same context will pick that up in the deferred renaming pass
             // and be renamed incorrectly.
             let mut rename_list = vec!(rename);
-            let mut rename_fld = renames_to_fold(&mut rename_list);
+            let mut rename_fld = IdentRenamer{renames: &mut rename_list};
             let renamed_ident = rename_fld.fold_ident(label);
 
             // The rename *must* be added to the enclosed syntax context for
@@ -624,7 +624,7 @@ fn expand_non_macro_stmt(s: &Stmt, fld: &mut MacroExpander)
                     }
                     let rewritten_pat = {
                         let mut rename_fld =
-                            renames_to_fold(&mut new_pending_renames);
+                            IdentRenamer{renames: &mut new_pending_renames};
                         // rewrite the pattern using the new names (the old
                         // ones have already been applied):
                         rename_fld.fold_pat(expanded_pat)
@@ -676,8 +676,7 @@ fn expand_arm(arm: &ast::Arm, fld: &mut MacroExpander) -> ast::Arm {
         new_pending_renames.push((*ident,new_name));
     }
     let rewritten_pat = {
-        let mut rename_fld =
-            renames_to_fold(&mut new_pending_renames);
+        let mut rename_fld = IdentRenamer{renames:&mut new_pending_renames};
         // rewrite the pattern using the new names (the old
         // ones have already been applied):
         rename_fld.fold_pat(expanded_pat)
@@ -757,17 +756,19 @@ fn expand_block_elts(b: &Block, fld: &mut MacroExpander) -> P<Block> {
     let new_view_items = b.view_items.iter().map(|x| fld.fold_view_item(x)).collect();
     let new_stmts =
         b.stmts.iter().flat_map(|x| {
+            // perform all pending renames
             let renamed_stmt = {
                 let pending_renames = &mut fld.extsbox.info().pending_renames;
-                let mut rename_fld = renames_to_fold(pending_renames);
+                let mut rename_fld = IdentRenamer{renames:pending_renames};
                 rename_fld.fold_stmt(&**x).expect_one("rename_fold didn't return one value")
             };
+            // expand macros in the statement
             fld.fold_stmt(&*renamed_stmt).move_iter()
         }).collect();
     let new_expr = b.expr.map(|x| {
         let expr = {
             let pending_renames = &mut fld.extsbox.info().pending_renames;
-            let mut rename_fld = renames_to_fold(pending_renames);
+            let mut rename_fld = IdentRenamer{renames:pending_renames};
             rename_fld.fold_expr(x)
         };
         fld.fold_expr(expr)
@@ -859,6 +860,7 @@ fn expand_pat(p: Gc<ast::Pat>, fld: &mut MacroExpander) -> Gc<ast::Pat> {
     }
 }
 
+// a tree-folder that applies every rename in its (mutable) list
 pub struct IdentRenamer<'a> {
     renames: &'a mut RenameList,
 }
@@ -875,14 +877,6 @@ impl<'a> Folder for IdentRenamer<'a> {
     }
 }
 
-// given a mutable list of renames, return a tree-folder that applies those
-// renames.
-fn renames_to_fold<'a>(renames: &'a mut RenameList) -> IdentRenamer<'a> {
-    IdentRenamer {
-        renames: renames,
-    }
-}
-
 fn new_span(cx: &ExtCtxt, sp: Span) -> Span {
     /* this discards information in the case of macro-defining macros */
     Span {