diff options
| author | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-24 11:39:18 +0000 |
|---|---|---|
| committer | Jeffrey Seyfried <jeffrey.seyfried@gmail.com> | 2016-06-24 11:39:54 +0000 |
| commit | 8cad25199acb346bf8d6b1771f1f50dc9e59374c (patch) | |
| tree | 05c78313a622f37969dc55738a241557342dce46 /src/libsyntax/print/pprust.rs | |
| parent | 060a84d1f7fee5585aa6ebc50c74b0b35f2c0283 (diff) | |
| download | rust-8cad25199acb346bf8d6b1771f1f50dc9e59374c.tar.gz rust-8cad25199acb346bf8d6b1771f1f50dc9e59374c.zip | |
Add `ecx.stmt_semi()` and fix issues with the pretty-printer
Diffstat (limited to 'src/libsyntax/print/pprust.rs')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index d38d5d9b6b6..00edd5585c2 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1599,6 +1599,9 @@ impl<'a> State<'a> { ast::StmtKind::Expr(ref expr, _) => { try!(self.space_if_not_bol()); try!(self.print_expr_outer_attr_style(&expr, false)); + if parse::classify::expr_requires_semi_to_be_stmt(expr) { + try!(word(&mut self.s, ";")); + } } ast::StmtKind::Semi(ref expr, _) => { try!(self.space_if_not_bol()); @@ -1662,9 +1665,17 @@ impl<'a> State<'a> { try!(self.print_inner_attributes(attrs)); - for st in &blk.stmts { - try!(self.print_stmt(st)); + for (i, st) in blk.stmts.iter().enumerate() { + match st.node { + ast::StmtKind::Expr(ref expr, _) if i == blk.stmts.len() - 1 => { + 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.print_stmt(st)), + } } + try!(self.bclose_maybe_open(blk.span, indented, close_box)); self.ann.post(self, NodeBlock(blk)) } |
