Skip to content

Commit c1c134a

Browse files
committed
ensure there are no stmts for expr check
1 parent 0c545c7 commit c1c134a

File tree

2 files changed

+3
-15
lines changed

2 files changed

+3
-15
lines changed

clippy_lints/src/mixed_read_write_in_expression.rs

+2-2
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ impl<'a, 'tcx> Visitor<'tcx> for DivergenceVisitor<'a, 'tcx> {
139139
match e.kind {
140140
// fix #10776
141141
ExprKind::Block(block, ..) => {
142-
if let Some(e) = block.expr {
142+
if let Some(e) = block.expr && block.stmts.is_empty() {
143143
self.visit_expr(e);
144144

145145
return;
146146
}
147147

148-
if let [stmt] = block.stmts && block.stmts.len() == 1 {
148+
if let [stmt, rest @ ..] = block.stmts && rest.is_empty() {
149149
match stmt.kind {
150150
StmtKind::Expr(e) | StmtKind::Semi(e) => self.visit_expr(e),
151151
_ => {},

tests/ui/diverging_sub_expression.stderr

+1-13
Original file line numberDiff line numberDiff line change
@@ -62,23 +62,11 @@ error: sub-expression diverges
6262
LL | 18 => false || { return },
6363
| ^^^^^^
6464

65-
error: sub-expression diverges
66-
--> $DIR/diverging_sub_expression.rs:47:36
67-
|
68-
LL | 19 => true || { _ = 1; return },
69-
| ^^^^^^
70-
71-
error: sub-expression diverges
72-
--> $DIR/diverging_sub_expression.rs:48:37
73-
|
74-
LL | 20 => false || { _ = 1; return },
75-
| ^^^^^^
76-
7765
error: sub-expression diverges
7866
--> $DIR/diverging_sub_expression.rs:52:26
7967
|
8068
LL | _ => true || break,
8169
| ^^^^^
8270

83-
error: aborting due to 13 previous errors
71+
error: aborting due to 11 previous errors
8472

0 commit comments

Comments
 (0)