From b7da35a5aa7603c3010e1aa9e5ff6de5660058fb Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Thu, 23 Jun 2016 09:51:18 +0000 Subject: Remove field `expr` of `ast::Block` --- src/libsyntax/ext/quote.rs | 24 +++++++++++------------- 1 file changed, 11 insertions(+), 13 deletions(-) (limited to 'src/libsyntax/ext/quote.rs') diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index 871b0d4b1c0..b1290451cbf 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -512,10 +512,8 @@ pub fn expand_quote_matcher(cx: &mut ExtCtxt, let (cx_expr, tts) = parse_arguments_to_quote(cx, tts); let mut vector = mk_stmts_let(cx, sp); vector.extend(statements_mk_tts(cx, &tts[..], true)); - let block = cx.expr_block( - cx.block_all(sp, - vector, - Some(cx.expr_ident(sp, id_ext("tt"))))); + vector.push(cx.stmt_expr(cx.expr_ident(sp, id_ext("tt")))); + let block = cx.expr_block(cx.block_all(sp, vector)); let expanded = expand_wrapper(cx, sp, cx_expr, block, &[&["syntax", "ext", "quote", "rt"]]); base::MacEager::expr(expanded) @@ -765,8 +763,9 @@ fn statements_mk_tt(cx: &ExtCtxt, tt: &TokenTree, matcher: bool) -> Vec cx.expr_some(sp, expr_mk_token(cx, sp, sep)), None => cx.expr_none(sp), @@ -884,10 +883,8 @@ fn expand_tts(cx: &ExtCtxt, sp: Span, tts: &[TokenTree]) let mut vector = mk_stmts_let(cx, sp); vector.extend(statements_mk_tts(cx, &tts[..], false)); - let block = cx.expr_block( - cx.block_all(sp, - vector, - Some(cx.expr_ident(sp, id_ext("tt"))))); + vector.push(cx.stmt_expr(cx.expr_ident(sp, id_ext("tt")))); + let block = cx.expr_block(cx.block_all(sp, vector)); (cx_expr, block) } @@ -901,13 +898,14 @@ fn expand_wrapper(cx: &ExtCtxt, let cx_expr_borrow = cx.expr_addr_of(sp, cx.expr_deref(sp, cx_expr)); let stmt_let_ext_cx = cx.stmt_let(sp, false, id_ext("ext_cx"), cx_expr_borrow); - let stmts = imports.iter().map(|path| { + let mut stmts = imports.iter().map(|path| { // make item: `use ...;` let path = path.iter().map(|s| s.to_string()).collect(); cx.stmt_item(sp, cx.item_use_glob(sp, ast::Visibility::Inherited, ids_ext(path))) - }).chain(Some(stmt_let_ext_cx)).collect(); + }).chain(Some(stmt_let_ext_cx)).collect::>(); + stmts.push(cx.stmt_expr(expr)); - cx.expr_block(cx.block_all(sp, stmts, Some(expr))) + cx.expr_block(cx.block_all(sp, stmts)) } fn expand_parse_call(cx: &ExtCtxt, -- cgit 1.4.1-3-g733a5 From 060a84d1f7fee5585aa6ebc50c74b0b35f2c0283 Mon Sep 17 00:00:00 2001 From: Jeffrey Seyfried Date: Thu, 23 Jun 2016 23:26:32 +0000 Subject: Refactor away duplicate method `ecx.block_all()` --- src/libsyntax/ext/build.rs | 9 ++------- src/libsyntax/ext/quote.rs | 6 +++--- src/libsyntax/test.rs | 2 +- src/libsyntax_ext/deriving/generic/mod.rs | 2 +- 4 files changed, 7 insertions(+), 12 deletions(-) (limited to 'src/libsyntax/ext/quote.rs') diff --git a/src/libsyntax/ext/build.rs b/src/libsyntax/ext/build.rs index 1a01fa2e9e0..480a0894201 100644 --- a/src/libsyntax/ext/build.rs +++ b/src/libsyntax/ext/build.rs @@ -100,7 +100,6 @@ pub trait AstBuilder { // blocks fn block(&self, span: Span, stmts: Vec) -> P; fn block_expr(&self, expr: P) -> P; - fn block_all(&self, span: Span, stmts: Vec) -> P; // expressions fn expr(&self, span: Span, node: ast::ExprKind) -> P; @@ -553,22 +552,18 @@ impl<'a> AstBuilder for ExtCtxt<'a> { P(respan(sp, ast::StmtKind::Decl(P(decl), ast::DUMMY_NODE_ID))) } - fn block(&self, span: Span, stmts: Vec) -> P { - self.block_all(span, stmts) - } - fn stmt_item(&self, sp: Span, item: P) -> ast::Stmt { let decl = respan(sp, ast::DeclKind::Item(item)); respan(sp, ast::StmtKind::Decl(P(decl), ast::DUMMY_NODE_ID)) } fn block_expr(&self, expr: P) -> P { - self.block_all(expr.span, vec![Spanned { + self.block(expr.span, vec![Spanned { span: expr.span, node: ast::StmtKind::Expr(expr, ast::DUMMY_NODE_ID), }]) } - fn block_all(&self, span: Span, stmts: Vec) -> P { + fn block(&self, span: Span, stmts: Vec) -> P { P(ast::Block { stmts: stmts, id: ast::DUMMY_NODE_ID, diff --git a/src/libsyntax/ext/quote.rs b/src/libsyntax/ext/quote.rs index b1290451cbf..74a88842d22 100644 --- a/src/libsyntax/ext/quote.rs +++ b/src/libsyntax/ext/quote.rs @@ -513,7 +513,7 @@ pub fn expand_quote_matcher(cx: &mut ExtCtxt, let mut vector = mk_stmts_let(cx, sp); vector.extend(statements_mk_tts(cx, &tts[..], true)); vector.push(cx.stmt_expr(cx.expr_ident(sp, id_ext("tt")))); - let block = cx.expr_block(cx.block_all(sp, vector)); + let block = cx.expr_block(cx.block(sp, vector)); let expanded = expand_wrapper(cx, sp, cx_expr, block, &[&["syntax", "ext", "quote", "rt"]]); base::MacEager::expr(expanded) @@ -884,7 +884,7 @@ fn expand_tts(cx: &ExtCtxt, sp: Span, tts: &[TokenTree]) let mut vector = mk_stmts_let(cx, sp); vector.extend(statements_mk_tts(cx, &tts[..], false)); vector.push(cx.stmt_expr(cx.expr_ident(sp, id_ext("tt")))); - let block = cx.expr_block(cx.block_all(sp, vector)); + let block = cx.expr_block(cx.block(sp, vector)); (cx_expr, block) } @@ -905,7 +905,7 @@ fn expand_wrapper(cx: &ExtCtxt, }).chain(Some(stmt_let_ext_cx)).collect::>(); stmts.push(cx.stmt_expr(expr)); - cx.expr_block(cx.block_all(sp, stmts)) + cx.expr_block(cx.block(sp, stmts)) } fn expand_parse_call(cx: &ExtCtxt, diff --git a/src/libsyntax/test.rs b/src/libsyntax/test.rs index 72beea0421b..39d3599e106 100644 --- a/src/libsyntax/test.rs +++ b/src/libsyntax/test.rs @@ -474,7 +474,7 @@ fn mk_main(cx: &mut TestCtxt) -> P { let main_attr = ecx.attribute(sp, main_meta); // pub fn main() { ... } let main_ret_ty = ecx.ty(sp, ast::TyKind::Tup(vec![])); - let main_body = ecx.block_all(sp, vec![call_test_main]); + let main_body = ecx.block(sp, vec![call_test_main]); let main = ast::ItemKind::Fn(ecx.fn_decl(vec![], main_ret_ty), ast::Unsafety::Normal, ast::Constness::NotConst, diff --git a/src/libsyntax_ext/deriving/generic/mod.rs b/src/libsyntax_ext/deriving/generic/mod.rs index dd27c1ec202..635d9ee5516 100644 --- a/src/libsyntax_ext/deriving/generic/mod.rs +++ b/src/libsyntax_ext/deriving/generic/mod.rs @@ -1333,7 +1333,7 @@ impl<'a> MethodDef<'a> { let all_match = cx.expr_match(sp, match_arg, match_arms); let arm_expr = cx.expr_if(sp, discriminant_test, all_match, Some(arm_expr)); index_let_stmts.push(cx.stmt_expr(arm_expr)); - cx.expr_block(cx.block_all(sp, index_let_stmts)) + cx.expr_block(cx.block(sp, index_let_stmts)) } else if variants.is_empty() { // As an additional wrinkle, For a zero-variant enum A, // currently the compiler -- cgit 1.4.1-3-g733a5