Plumb awaitness of for loops
This commit is contained in:
parent
d165a38de0
commit
212ea0359c
@ -220,7 +220,11 @@ where
|
|||||||
F: FnMut(&ast::Block, Option<&ast::Label>),
|
F: FnMut(&ast::Block, Option<&ast::Label>),
|
||||||
{
|
{
|
||||||
if let ast::ExprKind::While(_, loop_block, label)
|
if let ast::ExprKind::While(_, loop_block, label)
|
||||||
| ast::ExprKind::ForLoop(_, _, loop_block, label)
|
| ast::ExprKind::ForLoop {
|
||||||
|
body: loop_block,
|
||||||
|
label,
|
||||||
|
..
|
||||||
|
}
|
||||||
| ast::ExprKind::Loop(loop_block, label, ..) = &expr.kind
|
| ast::ExprKind::Loop(loop_block, label, ..) = &expr.kind
|
||||||
{
|
{
|
||||||
func(loop_block, label.as_ref());
|
func(loop_block, label.as_ref());
|
||||||
|
@ -111,7 +111,7 @@ impl<'ast> Visitor<'ast> for BreakVisitor {
|
|||||||
ExprKind::If(_, ref then, Some(ref els)) => self.check_block(then) && self.check_expr(els),
|
ExprKind::If(_, ref then, Some(ref els)) => self.check_block(then) && self.check_expr(els),
|
||||||
ExprKind::If(_, _, None)
|
ExprKind::If(_, _, None)
|
||||||
// ignore loops for simplicity
|
// ignore loops for simplicity
|
||||||
| ExprKind::While(..) | ExprKind::ForLoop(..) | ExprKind::Loop(..) => false,
|
| ExprKind::While(..) | ExprKind::ForLoop { .. } | ExprKind::Loop(..) => false,
|
||||||
_ => {
|
_ => {
|
||||||
walk_expr(self, expr);
|
walk_expr(self, expr);
|
||||||
return;
|
return;
|
||||||
|
@ -554,7 +554,7 @@ fn ident_difference_expr_with_base_location(
|
|||||||
| (Closure(_), Closure(_))
|
| (Closure(_), Closure(_))
|
||||||
| (Match(_, _), Match(_, _))
|
| (Match(_, _), Match(_, _))
|
||||||
| (Loop(_, _, _), Loop(_, _, _))
|
| (Loop(_, _, _), Loop(_, _, _))
|
||||||
| (ForLoop(_, _, _, _), ForLoop(_, _, _, _))
|
| (ForLoop { .. }, ForLoop { .. })
|
||||||
| (While(_, _, _), While(_, _, _))
|
| (While(_, _, _), While(_, _, _))
|
||||||
| (If(_, _, _), If(_, _, _))
|
| (If(_, _, _), If(_, _, _))
|
||||||
| (Let(_, _, _, _), Let(_, _, _, _))
|
| (Let(_, _, _, _), Let(_, _, _, _))
|
||||||
|
@ -169,9 +169,22 @@ pub fn eq_expr(l: &Expr, r: &Expr) -> bool {
|
|||||||
(Let(lp, le, _, _), Let(rp, re, _, _)) => eq_pat(lp, rp) && eq_expr(le, re),
|
(Let(lp, le, _, _), Let(rp, re, _, _)) => eq_pat(lp, rp) && eq_expr(le, re),
|
||||||
(If(lc, lt, le), If(rc, rt, re)) => eq_expr(lc, rc) && eq_block(lt, rt) && eq_expr_opt(le, re),
|
(If(lc, lt, le), If(rc, rt, re)) => eq_expr(lc, rc) && eq_block(lt, rt) && eq_expr_opt(le, re),
|
||||||
(While(lc, lt, ll), While(rc, rt, rl)) => eq_label(ll, rl) && eq_expr(lc, rc) && eq_block(lt, rt),
|
(While(lc, lt, ll), While(rc, rt, rl)) => eq_label(ll, rl) && eq_expr(lc, rc) && eq_block(lt, rt),
|
||||||
(ForLoop(lp, li, lt, ll), ForLoop(rp, ri, rt, rl)) => {
|
(
|
||||||
eq_label(ll, rl) && eq_pat(lp, rp) && eq_expr(li, ri) && eq_block(lt, rt)
|
ForLoop {
|
||||||
|
pat: lp,
|
||||||
|
iter: li,
|
||||||
|
body: lt,
|
||||||
|
label: ll,
|
||||||
|
kind: lk,
|
||||||
},
|
},
|
||||||
|
ForLoop {
|
||||||
|
pat: rp,
|
||||||
|
iter: ri,
|
||||||
|
body: rt,
|
||||||
|
label: rl,
|
||||||
|
kind: rk,
|
||||||
|
},
|
||||||
|
) => eq_label(ll, rl) && eq_pat(lp, rp) && eq_expr(li, ri) && eq_block(lt, rt) && lk == rk,
|
||||||
(Loop(lt, ll, _), Loop(rt, rl, _)) => eq_label(ll, rl) && eq_block(lt, rt),
|
(Loop(lt, ll, _), Loop(rt, rl, _)) => eq_label(ll, rl) && eq_block(lt, rt),
|
||||||
(Block(lb, ll), Block(rb, rl)) => eq_label(ll, rl) && eq_block(lb, rb),
|
(Block(lb, ll), Block(rb, rl)) => eq_label(ll, rl) && eq_block(lb, rb),
|
||||||
(TryBlock(l), TryBlock(r)) => eq_block(l, r),
|
(TryBlock(l), TryBlock(r)) => eq_block(l, r),
|
||||||
|
@ -197,7 +197,7 @@ impl<'a> Sugg<'a> {
|
|||||||
| ast::ExprKind::Continue(..)
|
| ast::ExprKind::Continue(..)
|
||||||
| ast::ExprKind::Yield(..)
|
| ast::ExprKind::Yield(..)
|
||||||
| ast::ExprKind::Field(..)
|
| ast::ExprKind::Field(..)
|
||||||
| ast::ExprKind::ForLoop(..)
|
| ast::ExprKind::ForLoop { .. }
|
||||||
| ast::ExprKind::Index(..)
|
| ast::ExprKind::Index(..)
|
||||||
| ast::ExprKind::InlineAsm(..)
|
| ast::ExprKind::InlineAsm(..)
|
||||||
| ast::ExprKind::OffsetOf(..)
|
| ast::ExprKind::OffsetOf(..)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user