Parse a pattern with no arm
This commit is contained in:
parent
3a760909fa
commit
7ffe1ff55f
@ -341,7 +341,9 @@ impl<'a, 'tcx> Visitor<'tcx> for SimilarNamesLocalVisitor<'a, 'tcx> {
|
||||
|
||||
self.apply(|this| {
|
||||
SimilarNamesNameVisitor(this).visit_pat(&arm.pat);
|
||||
this.apply(|this| walk_expr(this, &arm.body));
|
||||
if let Some(body) = &arm.body {
|
||||
this.apply(|this| walk_expr(this, body));
|
||||
}
|
||||
});
|
||||
|
||||
self.check_single_char_names();
|
||||
|
@ -105,7 +105,9 @@ impl<'ast> Visitor<'ast> for BreakVisitor {
|
||||
fn visit_expr(&mut self, expr: &'ast Expr) {
|
||||
self.is_break = match expr.kind {
|
||||
ExprKind::Break(..) | ExprKind::Continue(..) | ExprKind::Ret(..) => true,
|
||||
ExprKind::Match(_, ref arms) => arms.iter().all(|arm| self.check_expr(&arm.body)),
|
||||
ExprKind::Match(_, ref arms) => arms.iter().all(|arm|
|
||||
arm.body.is_none() || arm.body.as_deref().is_some_and(|body| self.check_expr(body))
|
||||
),
|
||||
ExprKind::If(_, ref then, Some(ref els)) => self.check_block(then) && self.check_expr(els),
|
||||
ExprKind::If(_, _, None)
|
||||
// ignore loops for simplicity
|
||||
|
@ -236,7 +236,7 @@ pub fn eq_field(l: &ExprField, r: &ExprField) -> bool {
|
||||
pub fn eq_arm(l: &Arm, r: &Arm) -> bool {
|
||||
l.is_placeholder == r.is_placeholder
|
||||
&& eq_pat(&l.pat, &r.pat)
|
||||
&& eq_expr(&l.body, &r.body)
|
||||
&& eq_expr_opt(&l.body, &r.body)
|
||||
&& eq_expr_opt(&l.guard, &r.guard)
|
||||
&& over(&l.attrs, &r.attrs, eq_attr)
|
||||
}
|
||||
|
Loading…
x
Reference in New Issue
Block a user