summaryrefslogtreecommitdiffstats
path: root/src/tools/clippy/clippy_utils/src/visitors.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/tools/clippy/clippy_utils/src/visitors.rs')
-rw-r--r--src/tools/clippy/clippy_utils/src/visitors.rs11
1 files changed, 11 insertions, 0 deletions
diff --git a/src/tools/clippy/clippy_utils/src/visitors.rs b/src/tools/clippy/clippy_utils/src/visitors.rs
index 863fb60fc..14c01a60b 100644
--- a/src/tools/clippy/clippy_utils/src/visitors.rs
+++ b/src/tools/clippy/clippy_utils/src/visitors.rs
@@ -724,3 +724,14 @@ pub fn for_each_local_assignment<'tcx, B>(
ControlFlow::Continue(())
}
}
+
+pub fn contains_break_or_continue(expr: &Expr<'_>) -> bool {
+ for_each_expr(expr, |e| {
+ if matches!(e.kind, ExprKind::Break(..) | ExprKind::Continue(..)) {
+ ControlFlow::Break(())
+ } else {
+ ControlFlow::Continue(())
+ }
+ })
+ .is_some()
+}