diff options
| -rw-r--r-- | clippy_lints/src/mixed_read_write_in_expression.rs | 4 | ||||
| -rw-r--r-- | tests/ui/diverging_sub_expression.stderr | 14 |
2 files changed, 3 insertions, 15 deletions
diff --git a/clippy_lints/src/mixed_read_write_in_expression.rs b/clippy_lints/src/mixed_read_write_in_expression.rs index caa3463b864..ac94820b40b 100644 --- a/clippy_lints/src/mixed_read_write_in_expression.rs +++ b/clippy_lints/src/mixed_read_write_in_expression.rs @@ -139,13 +139,13 @@ impl<'a, 'tcx> Visitor<'tcx> for DivergenceVisitor<'a, 'tcx> { match e.kind { // fix #10776 ExprKind::Block(block, ..) => { - if let Some(e) = block.expr { + if let Some(e) = block.expr && block.stmts.is_empty() { self.visit_expr(e); return; } - if let [stmt] = block.stmts && block.stmts.len() == 1 { + if let [stmt, rest @ ..] = block.stmts && rest.is_empty() { match stmt.kind { StmtKind::Expr(e) | StmtKind::Semi(e) => self.visit_expr(e), _ => {}, diff --git a/tests/ui/diverging_sub_expression.stderr b/tests/ui/diverging_sub_expression.stderr index e6396de2bb7..f121159ca3e 100644 --- a/tests/ui/diverging_sub_expression.stderr +++ b/tests/ui/diverging_sub_expression.stderr @@ -63,22 +63,10 @@ LL | 18 => false || { return }, | ^^^^^^ error: sub-expression diverges - --> $DIR/diverging_sub_expression.rs:47:36 - | -LL | 19 => true || { _ = 1; return }, - | ^^^^^^ - -error: sub-expression diverges - --> $DIR/diverging_sub_expression.rs:48:37 - | -LL | 20 => false || { _ = 1; return }, - | ^^^^^^ - -error: sub-expression diverges --> $DIR/diverging_sub_expression.rs:52:26 | LL | _ => true || break, | ^^^^^ -error: aborting due to 13 previous errors +error: aborting due to 11 previous errors |
