diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-05-15 16:05:58 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-06-23 01:29:29 +0200 |
| commit | 3fc964201486f9fdb006bfb7d0caf9b1c3e6cb71 (patch) | |
| tree | 704f0e7c7655806bcf92b15a94f09efe5c34ea2e /src/libsyntax | |
| parent | f0ab633e4dd56ae2445ec1806d582f50f42117e9 (diff) | |
| download | rust-3fc964201486f9fdb006bfb7d0caf9b1c3e6cb71.tar.gz rust-3fc964201486f9fdb006bfb7d0caf9b1c3e6cb71.zip | |
let_chains: Handle it in AST pretty printing.
Diffstat (limited to 'src/libsyntax')
| -rw-r--r-- | src/libsyntax/print/pprust.rs | 54 |
1 files changed, 14 insertions, 40 deletions
diff --git a/src/libsyntax/print/pprust.rs b/src/libsyntax/print/pprust.rs index 0aac4f83658..c525f2efb49 100644 --- a/src/libsyntax/print/pprust.rs +++ b/src/libsyntax/print/pprust.rs @@ -1715,6 +1715,16 @@ impl<'a> State<'a> { self.ann.post(self, AnnNode::Block(blk)) } + pub fn print_let(&mut self, pats: &[P<ast::Pat>], scrutinee: &ast::Expr) -> io::Result<()> { + self.s.word("let ")?; + + self.print_pats(pats)?; + self.s.space()?; + + self.word_space("=")?; + self.print_expr_as_cond(scrutinee) + } + fn print_else(&mut self, els: Option<&ast::Expr>) -> io::Result<()> { match els { Some(_else) => { @@ -1729,19 +1739,6 @@ impl<'a> State<'a> { self.print_block(then)?; self.print_else(e.as_ref().map(|e| &**e)) } - // Another `else if let` block. - ast::ExprKind::IfLet(ref pats, ref expr, ref then, ref e) => { - self.cbox(INDENT_UNIT - 1)?; - self.ibox(0)?; - self.s.word(" else if let ")?; - self.print_pats(pats)?; - self.s.space()?; - self.word_space("=")?; - self.print_expr_as_cond(expr)?; - self.s.space()?; - self.print_block(then)?; - self.print_else(e.as_ref().map(|e| &**e)) - } // Final `else` block. ast::ExprKind::Block(ref b, _) => { self.cbox(INDENT_UNIT - 1)?; @@ -1762,20 +1759,10 @@ impl<'a> State<'a> { pub fn print_if(&mut self, test: &ast::Expr, blk: &ast::Block, elseopt: Option<&ast::Expr>) -> io::Result<()> { self.head("if")?; + self.print_expr_as_cond(test)?; self.s.space()?; - self.print_block(blk)?; - self.print_else(elseopt) - } - pub fn print_if_let(&mut self, pats: &[P<ast::Pat>], expr: &ast::Expr, blk: &ast::Block, - elseopt: Option<&ast::Expr>) -> io::Result<()> { - self.head("if let")?; - self.print_pats(pats)?; - self.s.space()?; - self.word_space("=")?; - self.print_expr_as_cond(expr)?; - self.s.space()?; self.print_block(blk)?; self.print_else(elseopt) } @@ -2052,12 +2039,12 @@ impl<'a> State<'a> { self.word_space(":")?; self.print_type(ty)?; } + ast::ExprKind::Let(ref pats, ref scrutinee) => { + self.print_let(pats, scrutinee)?; + } ast::ExprKind::If(ref test, ref blk, ref elseopt) => { self.print_if(test, blk, elseopt.as_ref().map(|e| &**e))?; } - ast::ExprKind::IfLet(ref pats, ref expr, ref blk, ref elseopt) => { - self.print_if_let(pats, expr, blk, elseopt.as_ref().map(|e| &**e))?; - } ast::ExprKind::While(ref test, ref blk, opt_label) => { if let Some(label) = opt_label { self.print_ident(label.ident)?; @@ -2068,19 +2055,6 @@ impl<'a> State<'a> { self.s.space()?; self.print_block_with_attrs(blk, attrs)?; } - ast::ExprKind::WhileLet(ref pats, ref expr, ref blk, opt_label) => { - if let Some(label) = opt_label { - self.print_ident(label.ident)?; - self.word_space(":")?; - } - self.head("while let")?; - self.print_pats(pats)?; - self.s.space()?; - self.word_space("=")?; - self.print_expr_as_cond(expr)?; - self.s.space()?; - self.print_block_with_attrs(blk, attrs)?; - } ast::ExprKind::ForLoop(ref pat, ref iter, ref blk, opt_label) => { if let Some(label) = opt_label { self.print_ident(label.ident)?; |
