diff options
| author | bors <bors@rust-lang.org> | 2024-06-05 19:47:43 +0000 |
|---|---|---|
| committer | bors <bors@rust-lang.org> | 2024-06-05 19:47:43 +0000 |
| commit | 1105e9debef75e7fe3ce6306f8fbaf3bacdad046 (patch) | |
| tree | 8f47492a320bd7bc52f6ec1b205bd87f955a139c | |
| parent | bc00d7b94d637fb7ed4d392f29a5d235ef0a1ffe (diff) | |
| parent | 334bab2c253bfe1cdff6c0ebf93b82fb0e963b61 (diff) | |
| download | rust-1105e9debef75e7fe3ce6306f8fbaf3bacdad046.tar.gz rust-1105e9debef75e7fe3ce6306f8fbaf3bacdad046.zip | |
Auto merge of #12700 - Luv-Ray:overly_complex_bool_expr, r=Jarcho
[`overly_complex_bool_expr`]: Fix trigger wrongly on never type fixes #12689 --- changelog: fix [`overly_complex_bool_expr`] triggers wrongly on never type
| -rw-r--r-- | clippy_lints/src/booleans.rs | 5 | ||||
| -rw-r--r-- | tests/ui/overly_complex_bool_expr.fixed | 10 | ||||
| -rw-r--r-- | tests/ui/overly_complex_bool_expr.rs | 10 |
3 files changed, 25 insertions, 0 deletions
diff --git a/clippy_lints/src/booleans.rs b/clippy_lints/src/booleans.rs index b52d8f454ae..a1c6c0b608f 100644 --- a/clippy_lints/src/booleans.rs +++ b/clippy_lints/src/booleans.rs @@ -251,6 +251,11 @@ impl<'a, 'tcx, 'v> Hir2Qmm<'a, 'tcx, 'v> { _ => (), } } + + if self.cx.typeck_results().expr_ty(e).is_never() { + return Err("contains never type".to_owned()); + } + for (n, expr) in self.terminals.iter().enumerate() { if eq_expr_value(self.cx, e, expr) { #[expect(clippy::cast_possible_truncation)] diff --git a/tests/ui/overly_complex_bool_expr.fixed b/tests/ui/overly_complex_bool_expr.fixed index e44f6063156..439b1145431 100644 --- a/tests/ui/overly_complex_bool_expr.fixed +++ b/tests/ui/overly_complex_bool_expr.fixed @@ -37,3 +37,13 @@ fn check_expect() { #[expect(clippy::overly_complex_bool_expr)] let _ = a < b && a >= b; } + +#[allow(clippy::never_loop)] +fn check_never_type() { + loop { + _ = (break) || true; + } + loop { + _ = (return) || true; + } +} diff --git a/tests/ui/overly_complex_bool_expr.rs b/tests/ui/overly_complex_bool_expr.rs index f010a8537e7..b96fd1adf11 100644 --- a/tests/ui/overly_complex_bool_expr.rs +++ b/tests/ui/overly_complex_bool_expr.rs @@ -37,3 +37,13 @@ fn check_expect() { #[expect(clippy::overly_complex_bool_expr)] let _ = a < b && a >= b; } + +#[allow(clippy::never_loop)] +fn check_never_type() { + loop { + _ = (break) || true; + } + loop { + _ = (return) || true; + } +} |
