diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-05-15 16:06:58 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-06-23 01:29:29 +0200 |
| commit | f0ab633e4dd56ae2445ec1806d582f50f42117e9 (patch) | |
| tree | c6efd9fe396138a664ac4b382c0eef2115fde179 | |
| parent | 42accc99e6c4ad83876460afbda9d0adab750930 (diff) | |
| download | rust-f0ab633e4dd56ae2445ec1806d582f50f42117e9.tar.gz rust-f0ab633e4dd56ae2445ec1806d582f50f42117e9.zip | |
let_chains: Remove ast::ExprKind::{IfLet, WhileLet} from visitors and introduce ::Let.
| -rw-r--r-- | src/librustc_save_analysis/dump_visitor.rs | 12 | ||||
| -rw-r--r-- | src/libsyntax/mut_visit.rs | 16 | ||||
| -rw-r--r-- | src/libsyntax/parse/classify.rs | 2 | ||||
| -rw-r--r-- | src/libsyntax/visit.rs | 16 |
4 files changed, 10 insertions, 36 deletions
diff --git a/src/librustc_save_analysis/dump_visitor.rs b/src/librustc_save_analysis/dump_visitor.rs index f67241ef23e..09406f7306d 100644 --- a/src/librustc_save_analysis/dump_visitor.rs +++ b/src/librustc_save_analysis/dump_visitor.rs @@ -1580,17 +1580,9 @@ impl<'l, 'tcx, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tcx, ' self.visit_expr(subexpression); visit::walk_block(self, block); } - ast::ExprKind::WhileLet(ref pats, ref subexpression, ref block, _) => { + ast::ExprKind::Let(ref pats, ref scrutinee) => { self.process_var_decl_multi(pats); - debug!("for loop, walk sub-expr: {:?}", subexpression.node); - self.visit_expr(subexpression); - visit::walk_block(self, block); - } - ast::ExprKind::IfLet(ref pats, ref subexpression, ref block, ref opt_else) => { - self.process_var_decl_multi(pats); - self.visit_expr(subexpression); - visit::walk_block(self, block); - opt_else.as_ref().map(|el| self.visit_expr(el)); + self.visit_expr(scrutinee); } ast::ExprKind::Repeat(ref element, ref count) => { self.visit_expr(element); diff --git a/src/libsyntax/mut_visit.rs b/src/libsyntax/mut_visit.rs index 5a5b633e315..35aa2eead0b 100644 --- a/src/libsyntax/mut_visit.rs +++ b/src/libsyntax/mut_visit.rs @@ -1110,28 +1110,20 @@ pub fn noop_visit_expr<T: MutVisitor>(Expr { node, id, span, attrs }: &mut Expr, vis.visit_ty(ty); } ExprKind::AddrOf(_m, ohs) => vis.visit_expr(ohs), + ExprKind::Let(pats, scrutinee) => { + visit_vec(pats, |pat| vis.visit_pat(pat)); + vis.visit_expr(scrutinee); + } ExprKind::If(cond, tr, fl) => { vis.visit_expr(cond); vis.visit_block(tr); visit_opt(fl, |fl| vis.visit_expr(fl)); } - ExprKind::IfLet(pats, expr, tr, fl) => { - visit_vec(pats, |pat| vis.visit_pat(pat)); - vis.visit_expr(expr); - vis.visit_block(tr); - visit_opt(fl, |fl| vis.visit_expr(fl)); - } ExprKind::While(cond, body, label) => { vis.visit_expr(cond); vis.visit_block(body); visit_opt(label, |label| vis.visit_label(label)); } - ExprKind::WhileLet(pats, expr, body, label) => { - visit_vec(pats, |pat| vis.visit_pat(pat)); - vis.visit_expr(expr); - vis.visit_block(body); - visit_opt(label, |label| vis.visit_label(label)); - } ExprKind::ForLoop(pat, iter, body, label) => { vis.visit_pat(pat); vis.visit_expr(iter); diff --git a/src/libsyntax/parse/classify.rs b/src/libsyntax/parse/classify.rs index dfd6f451c28..6ebfab3a133 100644 --- a/src/libsyntax/parse/classify.rs +++ b/src/libsyntax/parse/classify.rs @@ -14,11 +14,9 @@ use crate::ast; pub fn expr_requires_semi_to_be_stmt(e: &ast::Expr) -> bool { match e.node { ast::ExprKind::If(..) | - ast::ExprKind::IfLet(..) | ast::ExprKind::Match(..) | ast::ExprKind::Block(..) | ast::ExprKind::While(..) | - ast::ExprKind::WhileLet(..) | ast::ExprKind::Loop(..) | ast::ExprKind::ForLoop(..) | ast::ExprKind::TryBlock(..) => false, diff --git a/src/libsyntax/visit.rs b/src/libsyntax/visit.rs index 8132024416a..4d961142ff1 100644 --- a/src/libsyntax/visit.rs +++ b/src/libsyntax/visit.rs @@ -719,6 +719,10 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) { visitor.visit_expr(subexpression); visitor.visit_ty(typ) } + ExprKind::Let(ref pats, ref scrutinee) => { + walk_list!(visitor, visit_pat, pats); + visitor.visit_expr(scrutinee); + } ExprKind::If(ref head_expression, ref if_block, ref optional_else) => { visitor.visit_expr(head_expression); visitor.visit_block(if_block); @@ -729,18 +733,6 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) { visitor.visit_expr(subexpression); visitor.visit_block(block); } - ExprKind::IfLet(ref pats, ref subexpression, ref if_block, ref optional_else) => { - walk_list!(visitor, visit_pat, pats); - visitor.visit_expr(subexpression); - visitor.visit_block(if_block); - walk_list!(visitor, visit_expr, optional_else); - } - ExprKind::WhileLet(ref pats, ref subexpression, ref block, ref opt_label) => { - walk_list!(visitor, visit_label, opt_label); - walk_list!(visitor, visit_pat, pats); - visitor.visit_expr(subexpression); - visitor.visit_block(block); - } ExprKind::ForLoop(ref pattern, ref subexpression, ref block, ref opt_label) => { walk_list!(visitor, visit_label, opt_label); visitor.visit_pat(pattern); |
