Re: [PATCH 6/7] drm/panic: allow verbose boolean for clarity
From: Alice Ryhl
Date: Mon Oct 14 2024 - 04:30:27 EST
On Sat, Oct 12, 2024 at 9:53 AM Thomas Böhler <witcher@xxxxxxxxxxxxx> wrote:
>
> Clippy complains about a non-minimal boolean expression with
> `nonminimal_bool`:
>
> error: this boolean expression can be simplified
> --> drivers/gpu/drm/drm_panic_qr.rs:722:9
> |
> 722 | (x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8)
> | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
> |
> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#nonminimal_bool
> = note: `-D clippy::nonminimal-bool` implied by `-D warnings`
> = help: to override `-D warnings` add `#[allow(clippy::nonminimal_bool)]`
> help: try
> |
> 722 | !(x >= 8 || y >= 8 && y < end) || (x >= end && y < 8)
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> 722 | (y >= end || y < 8) && x < 8 || (x >= end && y < 8)
> | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
>
> While this can be useful in a lot of cases, it isn't here because the
> line expresses clearly what the intention is. Simplifying the expression
> means losing clarity, so opt-out of this lint for the offending line.
>
> Reported-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
> Closes: https://github.com/Rust-for-Linux/linux/issues/1123
> Signed-off-by: Thomas Böhler <witcher@xxxxxxxxxxxxx>
> ---
> drivers/gpu/drm/drm_panic_qr.rs | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/drm_panic_qr.rs b/drivers/gpu/drm/drm_panic_qr.rs
> index 58c46f366f76..226107c02679 100644
> --- a/drivers/gpu/drm/drm_panic_qr.rs
> +++ b/drivers/gpu/drm/drm_panic_qr.rs
> @@ -719,7 +719,8 @@ fn draw_finders(&mut self) {
>
> fn is_finder(&self, x: u8, y: u8) -> bool {
> let end = self.width - 8;
> - (x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8)
> + #[allow(clippy::nonminimal_bool)]
> + return (x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8);
Surely introducing a return statement causes another clippy error?
You can do this:
#[allow(clippy::nonminimal_bool)]
{
(x < 8 && y < 8) || (x < 8 && y >= end) || (x >= end && y < 8)
}
or just put the allow on the function.
Alice