Skip to content

Commit 875cdd6

Browse files
committed
let_chains: Remove ast::ExprKind::{IfLet, WhileLet} from visitors and introduce ::Let.
1 parent 475bb38 commit 875cdd6

File tree

4 files changed

+10
-36
lines changed

4 files changed

+10
-36
lines changed

src/librustc_save_analysis/dump_visitor.rs

Lines changed: 2 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1579,17 +1579,9 @@ impl<'l, 'tcx: 'l, 'll, O: DumpOutput + 'll> Visitor<'l> for DumpVisitor<'l, 'tc
15791579
self.visit_expr(subexpression);
15801580
visit::walk_block(self, block);
15811581
}
1582-
ast::ExprKind::WhileLet(ref pats, ref subexpression, ref block, _) => {
1582+
ast::ExprKind::Let(ref pats, ref scrutinee) => {
15831583
self.process_var_decl_multi(pats);
1584-
debug!("for loop, walk sub-expr: {:?}", subexpression.node);
1585-
self.visit_expr(subexpression);
1586-
visit::walk_block(self, block);
1587-
}
1588-
ast::ExprKind::IfLet(ref pats, ref subexpression, ref block, ref opt_else) => {
1589-
self.process_var_decl_multi(pats);
1590-
self.visit_expr(subexpression);
1591-
visit::walk_block(self, block);
1592-
opt_else.as_ref().map(|el| self.visit_expr(el));
1584+
self.visit_expr(scrutinee);
15931585
}
15941586
ast::ExprKind::Repeat(ref element, ref count) => {
15951587
self.visit_expr(element);

src/libsyntax/mut_visit.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1131,28 +1131,20 @@ pub fn noop_visit_expr<T: MutVisitor>(Expr { node, id, span, attrs }: &mut Expr,
11311131
vis.visit_ty(ty);
11321132
}
11331133
ExprKind::AddrOf(_m, ohs) => vis.visit_expr(ohs),
1134+
ExprKind::Let(pats, scrutinee) => {
1135+
visit_vec(pats, |pat| vis.visit_pat(pat));
1136+
vis.visit_expr(scrutinee);
1137+
}
11341138
ExprKind::If(cond, tr, fl) => {
11351139
vis.visit_expr(cond);
11361140
vis.visit_block(tr);
11371141
visit_opt(fl, |fl| vis.visit_expr(fl));
11381142
}
1139-
ExprKind::IfLet(pats, expr, tr, fl) => {
1140-
visit_vec(pats, |pat| vis.visit_pat(pat));
1141-
vis.visit_expr(expr);
1142-
vis.visit_block(tr);
1143-
visit_opt(fl, |fl| vis.visit_expr(fl));
1144-
}
11451143
ExprKind::While(cond, body, label) => {
11461144
vis.visit_expr(cond);
11471145
vis.visit_block(body);
11481146
visit_opt(label, |label| vis.visit_label(label));
11491147
}
1150-
ExprKind::WhileLet(pats, expr, body, label) => {
1151-
visit_vec(pats, |pat| vis.visit_pat(pat));
1152-
vis.visit_expr(expr);
1153-
vis.visit_block(body);
1154-
visit_opt(label, |label| vis.visit_label(label));
1155-
}
11561148
ExprKind::ForLoop(pat, iter, body, label) => {
11571149
vis.visit_pat(pat);
11581150
vis.visit_expr(iter);

src/libsyntax/parse/classify.rs

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -14,11 +14,9 @@ use crate::ast;
1414
pub fn expr_requires_semi_to_be_stmt(e: &ast::Expr) -> bool {
1515
match e.node {
1616
ast::ExprKind::If(..) |
17-
ast::ExprKind::IfLet(..) |
1817
ast::ExprKind::Match(..) |
1918
ast::ExprKind::Block(..) |
2019
ast::ExprKind::While(..) |
21-
ast::ExprKind::WhileLet(..) |
2220
ast::ExprKind::Loop(..) |
2321
ast::ExprKind::ForLoop(..) |
2422
ast::ExprKind::TryBlock(..) => false,

src/libsyntax/visit.rs

Lines changed: 4 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -719,6 +719,10 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) {
719719
visitor.visit_expr(subexpression);
720720
visitor.visit_ty(typ)
721721
}
722+
ExprKind::Let(ref pats, ref scrutinee) => {
723+
walk_list!(visitor, visit_pat, pats);
724+
visitor.visit_expr(scrutinee);
725+
}
722726
ExprKind::If(ref head_expression, ref if_block, ref optional_else) => {
723727
visitor.visit_expr(head_expression);
724728
visitor.visit_block(if_block);
@@ -729,18 +733,6 @@ pub fn walk_expr<'a, V: Visitor<'a>>(visitor: &mut V, expression: &'a Expr) {
729733
visitor.visit_expr(subexpression);
730734
visitor.visit_block(block);
731735
}
732-
ExprKind::IfLet(ref pats, ref subexpression, ref if_block, ref optional_else) => {
733-
walk_list!(visitor, visit_pat, pats);
734-
visitor.visit_expr(subexpression);
735-
visitor.visit_block(if_block);
736-
walk_list!(visitor, visit_expr, optional_else);
737-
}
738-
ExprKind::WhileLet(ref pats, ref subexpression, ref block, ref opt_label) => {
739-
walk_list!(visitor, visit_label, opt_label);
740-
walk_list!(visitor, visit_pat, pats);
741-
visitor.visit_expr(subexpression);
742-
visitor.visit_block(block);
743-
}
744736
ExprKind::ForLoop(ref pattern, ref subexpression, ref block, ref opt_label) => {
745737
walk_list!(visitor, visit_label, opt_label);
746738
visitor.visit_pat(pattern);

0 commit comments

Comments
 (0)