summary refs log tree commit diff
path: root/src/libsyntax/ext
diff options
context:
space:
mode:
authorHuon Wilson <dbau.pp+github@gmail.com>2014-03-03 18:41:47 +1100
committerHuon Wilson <dbau.pp+github@gmail.com>2014-03-03 22:48:42 +1100
commitc3b904704031047ef9e1f7906d3faee15778ffe5 (patch)
treec5effad359313654e966bdac21a1b6767010c94f /src/libsyntax/ext
parent3f3425a5550e7d8b58d782425b09eab20b91c1c0 (diff)
downloadrust-c3b904704031047ef9e1f7906d3faee15778ffe5.tar.gz
rust-c3b904704031047ef9e1f7906d3faee15778ffe5.zip
syntax: make match arms store the expr directly.
Previously `ast::Arm` was always storing a single `ast::Expr` wrapped in an
`ast::Block` (for historical reasons, AIUI), so we might as just store
that expr directly.

Closes #3085.
Diffstat (limited to 'src/libsyntax/ext')
-rw-r--r--src/libsyntax/ext/build.rs2
-rw-r--r--src/libsyntax/ext/deriving/primitive.rs4
2 files changed, 3 insertions, 3 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index 34625923ea1..8296ee34c54 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -679,7 +679,7 @@ impl<'a> AstBuilder for ExtCtxt<'a> {
         ast::Arm {
             pats: pats,
             guard: None,
-            body: self.block_expr(expr)
+            body: expr
         }
     }
 
diff --git a/src/libsyntax/ext/deriving/primitive.rs b/src/libsyntax/ext/deriving/primitive.rs
index ecd042eb172..190f009103f 100644
--- a/src/libsyntax/ext/deriving/primitive.rs
+++ b/src/libsyntax/ext/deriving/primitive.rs
@@ -110,7 +110,7 @@ fn cs_from(name: &str, cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure
                         let arm = ast::Arm {
                             pats: vec!(cx.pat_wild(span)),
                             guard: Some(guard),
-                            body: cx.block_expr(body),
+                            body: body,
                         };
 
                         arms.push(arm);
@@ -129,7 +129,7 @@ fn cs_from(name: &str, cx: &mut ExtCtxt, trait_span: Span, substr: &Substructure
             let arm = ast::Arm {
                 pats: vec!(cx.pat_wild(trait_span)),
                 guard: None,
-                body: cx.block_expr(cx.expr_none(trait_span)),
+                body: cx.expr_none(trait_span),
             };
             arms.push(arm);