let_chains: Remove ast::ExprKind::{IfLet, WhileLet} from visitors and introduce ::Let.
This commit is contained in:
parent
42accc99e6
commit
f0ab633e4d
@ -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);
|
||||
|
@ -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);
|
||||
|
@ -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,
|
||||
|
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user