about summary refs log tree commit diff
path: root/src/libsyntax/ext/build.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/libsyntax/ext/build.rs')
-rw-r--r--src/libsyntax/ext/build.rs30
1 files changed, 15 insertions, 15 deletions
diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs
index 63a4d3d4043..a497cede619 100644
--- a/src/libsyntax/ext/build.rs
+++ b/src/libsyntax/ext/build.rs
@@ -1,6 +1,11 @@
 import codemap::span;
 import base::ext_ctxt;
 
+fn mk_expr(cx: ext_ctxt, sp: codemap::span, expr: ast::expr_) ->
+    @ast::expr {
+    ret @{id: cx.next_id(), node: expr, span: sp};
+}
+
 fn mk_lit(cx: ext_ctxt, sp: span, lit: ast::lit_) -> @ast::expr {
     let sp_lit = @{node: lit, span: sp};
     ret @{id: cx.next_id(), node: ast::expr_lit(sp_lit), span: sp};
@@ -21,26 +26,23 @@ fn mk_binary(cx: ext_ctxt, sp: span, op: ast::binop,
              lhs: @ast::expr, rhs: @ast::expr)
    -> @ast::expr {
     cx.next_id(); // see ast_util::op_expr_callee_id
-    let binexpr = ast::expr_binary(op, lhs, rhs);
-    ret @{id: cx.next_id(), node: binexpr, span: sp};
+    mk_expr(cx, sp, ast::expr_binary(op, lhs, rhs))
 }
 fn mk_unary(cx: ext_ctxt, sp: span, op: ast::unop, e: @ast::expr)
     -> @ast::expr {
     cx.next_id(); // see ast_util::op_expr_callee_id
-    let expr = ast::expr_unary(op, e);
-    ret @{id: cx.next_id(), node: expr, span: sp};
+    mk_expr(cx, sp, ast::expr_unary(op, e))
 }
 fn mk_path(cx: ext_ctxt, sp: span, idents: [ast::ident]/~) ->
     @ast::expr {
     let path = @{span: sp, global: false, idents: idents,
                  rp: none, types: []/~};
     let pathexpr = ast::expr_path(path);
-    ret @{id: cx.next_id(), node: pathexpr, span: sp};
+    mk_expr(cx, sp, pathexpr)
 }
 fn mk_access_(cx: ext_ctxt, sp: span, p: @ast::expr, m: ast::ident)
     -> @ast::expr {
-    let expr = ast::expr_field(p, m, []/~);
-    ret @{id: cx.next_id(), node: expr, span: sp};
+    mk_expr(cx, sp, ast::expr_field(p, m, []/~))
 }
 fn mk_access(cx: ext_ctxt, sp: span, p: [ast::ident]/~, m: ast::ident)
     -> @ast::expr {
@@ -49,8 +51,7 @@ fn mk_access(cx: ext_ctxt, sp: span, p: [ast::ident]/~, m: ast::ident)
 }
 fn mk_call_(cx: ext_ctxt, sp: span, fn_expr: @ast::expr,
             args: [@ast::expr]/~) -> @ast::expr {
-    let callexpr = ast::expr_call(fn_expr, args, false);
-    ret @{id: cx.next_id(), node: callexpr, span: sp};
+    mk_expr(cx, sp, ast::expr_call(fn_expr, args, false))
 }
 fn mk_call(cx: ext_ctxt, sp: span, fn_path: [ast::ident]/~,
              args: [@ast::expr]/~) -> @ast::expr {
@@ -58,23 +59,22 @@ fn mk_call(cx: ext_ctxt, sp: span, fn_path: [ast::ident]/~,
     ret mk_call_(cx, sp, pathexpr, args);
 }
 // e = expr, t = type
-fn mk_vec_e(cx: ext_ctxt, sp: span, exprs: [@ast::expr]/~) ->
+fn mk_base_vec_e(cx: ext_ctxt, sp: span, exprs: [@ast::expr]/~) ->
    @ast::expr {
     let vecexpr = ast::expr_vec(exprs, ast::m_imm);
     ret @{id: cx.next_id(), node: vecexpr, span: sp};
 }
 fn mk_vstore_e(cx: ext_ctxt, sp: span, expr: @ast::expr, vst: ast::vstore) ->
    @ast::expr {
-    let vstoreexpr = ast::expr_vstore(expr, vst);
-    ret @{id: cx.next_id(), node: vstoreexpr, span: sp};
+    mk_expr(cx, sp, ast::expr_vstore(expr, vst))
 }
 fn mk_uniq_vec_e(cx: ext_ctxt, sp: span, exprs: [@ast::expr]/~) ->
    @ast::expr {
-    mk_vstore_e(cx, sp, mk_vec_e(cx, sp, exprs), ast::vstore_uniq)
+    mk_vstore_e(cx, sp, mk_base_vec_e(cx, sp, exprs), ast::vstore_uniq)
 }
 fn mk_fixed_vec_e(cx: ext_ctxt, sp: span, exprs: [@ast::expr]/~) ->
    @ast::expr {
-    mk_vstore_e(cx, sp, mk_vec_e(cx, sp, exprs), ast::vstore_fixed(none))
+    mk_vstore_e(cx, sp, mk_base_vec_e(cx, sp, exprs), ast::vstore_fixed(none))
 }
 
 fn mk_rec_e(cx: ext_ctxt, sp: span,
@@ -89,6 +89,6 @@ fn mk_rec_e(cx: ext_ctxt, sp: span,
         vec::push(astfields, astfield);
     }
     let recexpr = ast::expr_rec(astfields, option::none::<@ast::expr>);
-    ret @{id: cx.next_id(), node: recexpr, span: sp};
+    mk_expr(cx, sp, recexpr)
 }