diff options
| author | y21 <30553356+y21@users.noreply.github.com> | 2024-01-27 17:07:10 +0100 |
|---|---|---|
| committer | y21 <30553356+y21@users.noreply.github.com> | 2024-01-27 17:07:10 +0100 |
| commit | ff5afac6167f1af9413bc8bc7a95626a91a489f2 (patch) | |
| tree | acf22f62143b0038a3cab3e1421c974e5f517a63 | |
| parent | 66c29b973b3b10278bd39f4e26b08522a379c2c9 (diff) | |
| download | rust-ff5afac6167f1af9413bc8bc7a95626a91a489f2.tar.gz rust-ff5afac6167f1af9413bc8bc7a95626a91a489f2.zip | |
[`never_loop`]: recognize `?` desugaring in try blocks
| -rw-r--r-- | clippy_lints/src/loops/never_loop.rs | 6 | ||||
| -rw-r--r-- | tests/ui/never_loop.rs | 11 |
2 files changed, 13 insertions, 4 deletions
diff --git a/clippy_lints/src/loops/never_loop.rs b/clippy_lints/src/loops/never_loop.rs index 62bc663191f..245a903f998 100644 --- a/clippy_lints/src/loops/never_loop.rs +++ b/clippy_lints/src/loops/never_loop.rs @@ -201,12 +201,12 @@ fn never_loop_expr<'tcx>( }) }) }, - ExprKind::Block(b, l) => { - if l.is_some() { + ExprKind::Block(b, _) => { + if b.targeted_by_break { local_labels.push((b.hir_id, false)); } let ret = never_loop_block(cx, b, local_labels, main_loop_id); - let jumped_to = l.is_some() && local_labels.pop().unwrap().1; + let jumped_to = b.targeted_by_break && local_labels.pop().unwrap().1; match ret { NeverLoopResult::Diverging if jumped_to => NeverLoopResult::Normal, _ => ret, diff --git a/tests/ui/never_loop.rs b/tests/ui/never_loop.rs index c67a6d4494e..92f173d9db4 100644 --- a/tests/ui/never_loop.rs +++ b/tests/ui/never_loop.rs @@ -1,4 +1,4 @@ -#![feature(inline_const)] +#![feature(inline_const, try_blocks)] #