about summary refs log tree commit diff
path: root/src/libsyntax/ext/expand.rs
diff options
context:
space:
mode:
authorKevin Ballard <kevin@sb.org>2014-08-27 21:34:03 -0700
committerJakub Wieczorek <jakub@jakub.cc>2014-09-30 18:54:03 +0200
commit13e00e4a3d18802ca6407e59935be9f2c33ec061 (patch)
tree86310bd54230b0caaa201dbf7485e104abe935f2 /src/libsyntax/ext/expand.rs
parent8a609521007c0c0c37d8d2396085631c08ad5232 (diff)
downloadrust-13e00e4a3d18802ca6407e59935be9f2c33ec061.tar.gz
rust-13e00e4a3d18802ca6407e59935be9f2c33ec061.zip
Update based on PR feedback
Diffstat (limited to 'src/libsyntax/ext/expand.rs')
-rw-r--r--src/libsyntax/ext/expand.rs36
1 files changed, 16 insertions, 20 deletions
diff --git a/src/libsyntax/ext/expand.rs b/src/libsyntax/ext/expand.rs
index de6a8675e13..76ca33cc2b8 100644
--- a/src/libsyntax/ext/expand.rs
+++ b/src/libsyntax/ext/expand.rs
@@ -132,26 +132,22 @@ pub fn expand_expr(e: P<ast::Expr>, fld: &mut MacroExpander) -> P<ast::Expr> {
         }
 
         // Desugar support for ExprIfLet in the ExprIf else position
-        ast::ExprIf(cond, blk, mut elseopt) => {
-            // NOTE: replace with 'if let' after snapshot
-            match elseopt {
-                Some(els) => match els.node {
-                    ast::ExprIfLet(..) => {
-                        // wrap the if-let expr in a block
-                        let blk = P(ast::Block {
-                            view_items: vec![],
-                            stmts: vec![],
-                            expr: Some(els),
-                            id: ast::DUMMY_NODE_ID,
-                            rules: ast::DefaultBlock,
-                            span: els.span
-                        });
-                        elseopt = Some(fld.cx.expr_block(blk));
-                    }
-                    _ => ()
-                },
-                None => ()
-            };
+        ast::ExprIf(cond, blk, elseopt) => {
+            let elseopt = elseopt.map(|els| match els.node {
+                ast::ExprIfLet(..) => {
+                    // wrap the if-let expr in a block
+                    let blk = P(ast::Block {
+                        view_items: vec![],
+                        stmts: vec![],
+                        expr: Some(els),
+                        id: ast::DUMMY_NODE_ID,
+                        rules: ast::DefaultBlock,
+                        span: els.span
+                    });
+                    fld.cx.expr_block(blk)
+                }
+                _ => els
+            });
             let if_expr = fld.cx.expr(e.span, ast::ExprIf(cond, blk, elseopt));
             noop_fold_expr(if_expr, fld)
         }