diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-23 09:51:18 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-23 17:42:08 +0000 |
| commit | b7da35a5aa7603c3010e1aa9e5ff6de5660058fb (patch) | |
| tree | 9707bfa5eb1bab73f138bca605a79f112b8a9d9c /src/libsyntax/print/pprust.rs | |
| parent | 4960f2f9074d0d0f9de80b39f0b0ded6547e2ad8 (diff) | |
| download | rust-b7da35a5aa7603c3010e1aa9e5ff6de5660058fb.tar.gz rust-b7da35a5aa7603c3010e1aa9e5ff6de5660058fb.zip | |
Remove field `expr` of `ast::Block`
Diffstat (limited to 'src/libsyntax/print/pprust.rs')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 29 |
1 files changed, 9 insertions, 20 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index a2ee5bf6090..d38d5d9b6b6 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1619,9 +1619,6 @@ impl<'a> State<'a> { } } } - if parse::classify::stmt_ends_with_semi(&st.node) { - try!(word(&mut self.s, ";")); - } self.maybe_print_trailing_comment(st.span, None) } @@ -1668,14 +1665,6 @@ impl<'a> State<'a> { for st in &blk.stmts { try!(self.print_stmt(st)); } - match blk.expr { - Some(ref expr) => { - try!(self.space_if_not_bol()); - try!(self.print_expr_outer_attr_style(&expr, false)); - try!(self.maybe_print_trailing_comment(expr.span, Some(blk.span.hi))); - } - _ => () - } try!(self.bclose_maybe_open(blk.span, indented, close_box)); self.ann.post(self, NodeBlock(blk)) } @@ -2084,24 +2073,23 @@ impl<'a> State<'a> { _ => false }; - if !default_return || !body.stmts.is_empty() || body.expr.is_none() { - try!(self.print_block_unclosed(&body)); - } else { - // we extract the block, so as not to create another set of boxes - let i_expr = body.expr.as_ref().unwrap(); - match i_expr.node { - ast::ExprKind::Block(ref blk) => { + match body.stmts.last().map(|stmt| &stmt.node) { + Some(&ast::StmtKind::Expr(ref i_expr, _)) if default_return && + body.stmts.len() == 1 => { + // we extract the block, so as not to create another set of boxes + if let ast::ExprKind::Block(ref blk) = i_expr.node { try!(self.print_block_unclosed_with_attrs( &blk, i_expr.attrs.as_attr_slice())); - } - _ => { + } else { // this is a bare expression try!(self.print_expr(&i_expr)); try!(self.end()); // need to close a box } } + _ => try!(self.print_block_unclosed(&body)), } + // a box will be closed by print_expr, but we didn't want an overall // wrapper so we closed the corresponding opening. so create an // empty box to satisfy the close. @@ -2295,6 +2283,7 @@ impl<'a> State<'a> { try!(self.word_space("=")); try!(self.print_expr(&init)); } + try!(word(&mut self.s, ";")); self.end() } ast::DeclKind::Item(ref item) => self.print_item(&item) |
