Skip to content

Commit 94c793e

Browse files
committed
1 parent 4db85fb commit 94c793e

File tree

2 files changed

+2
-88
lines changed

2 files changed

+2
-88
lines changed

clippy_lints/src/mixed_read_write_in_expression.rs

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
use clippy_utils::diagnostics::{span_lint, span_lint_and_note};
22
use clippy_utils::{get_parent_expr, path_to_local, path_to_local_id};
33
use if_chain::if_chain;
4-
use rustc_hir::intravisit::{walk_expr, Visitor};
4+
use rustc_hir::intravisit::{walk_block, walk_expr, Visitor};
55
use rustc_hir::{BinOpKind, Block, Expr, ExprKind, Guard, HirId, Local, Node, Stmt, StmtKind};
66
use rustc_lint::{LateContext, LateLintPass};
77
use rustc_middle::ty;
@@ -171,6 +171,7 @@ impl<'a, 'tcx> Visitor<'tcx> for DivergenceVisitor<'a, 'tcx> {
171171
self.report_diverging_sub_expr(e);
172172
}
173173
},
174+
ExprKind::Block(block, ..) => walk_block(self, block),
174175
_ => {
175176
// do not lint expressions referencing objects of type `!`, as that required a
176177
// diverging expression
@@ -179,9 +180,6 @@ impl<'a, 'tcx> Visitor<'tcx> for DivergenceVisitor<'a, 'tcx> {
179180
}
180181
self.maybe_walk_expr(e);
181182
}
182-
fn visit_block(&mut self, _: &'tcx Block<'_>) {
183-
// don't continue over blocks, LateLintPass already does that
184-
}
185183
}
186184

187185
/// Walks up the AST from the given write expression (`vis.write_expr`) looking
Lines changed: 0 additions & 84 deletions
Original file line numberDiff line numberDiff line change
@@ -1,84 +0,0 @@
1-
error: sub-expression diverges
2-
--> $DIR/diverging_sub_expression.rs:20:10
3-
|
4-
LL | b || diverge();
5-
| ^^^^^^^^^
6-
|
7-
= note: `-D clippy::diverging-sub-expression` implied by `-D warnings`
8-
9-
error: sub-expression diverges
10-
--> $DIR/diverging_sub_expression.rs:21:10
11-
|
12-
LL | b || A.foo();
13-
| ^^^^^^^
14-
15-
error: sub-expression diverges
16-
--> $DIR/diverging_sub_expression.rs:31:26
17-
|
18-
LL | 6 => true || return,
19-
| ^^^^^^
20-
21-
error: sub-expression diverges
22-
--> $DIR/diverging_sub_expression.rs:32:26
23-
|
24-
LL | 7 => true || continue,
25-
| ^^^^^^^^
26-
27-
error: sub-expression diverges
28-
--> $DIR/diverging_sub_expression.rs:35:26
29-
|
30-
LL | 3 => true || diverge(),
31-
| ^^^^^^^^^
32-
33-
error: sub-expression diverges
34-
--> $DIR/diverging_sub_expression.rs:38:30
35-
|
36-
LL | _ => true || panic!("boo"),
37-
| ^^^^^^^^^^^^^
38-
|
39-
= note: this error originates in the macro `$crate::panic::panic_2021` which comes from the expansion of the macro `panic` (in Nightly builds, run with -Z macro-backtrace for more info)
40-
41-
error: sub-expression diverges
42-
--> $DIR/diverging_sub_expression.rs:41:29
43-
|
44-
LL | 15 => true || { return; },
45-
| ^^^^^^
46-
47-
error: sub-expression diverges
48-
--> $DIR/diverging_sub_expression.rs:42:30
49-
|
50-
LL | 16 => false || { return; },
51-
| ^^^^^^
52-
53-
error: sub-expression diverges
54-
--> $DIR/diverging_sub_expression.rs:44:29
55-
|
56-
LL | 17 => true || { return },
57-
| ^^^^^^
58-
59-
error: sub-expression diverges
60-
--> $DIR/diverging_sub_expression.rs:45:30
61-
|
62-
LL | 18 => false || { return },
63-
| ^^^^^^
64-
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-
77-
error: sub-expression diverges
78-
--> $DIR/diverging_sub_expression.rs:52:26
79-
|
80-
LL | _ => true || break,
81-
| ^^^^^
82-
83-
error: aborting due to 13 previous errors
84-

0 commit comments

Comments
 (0)