Re: [PATCH 1/2] rust: allow `clippy::collapsible_match` globally

From: Miguel Ojeda

Date: Thu Apr 30 2026 - 17:23:38 EST


On Sun, Apr 26, 2026 at 4:42 PM Miguel Ojeda <ojeda@xxxxxxxxxx> wrote:
>
> The `clippy::collapsible_match` lint [1] can make code harder to read
> in certain cases [2], e.g.
>
> CLIPPY P rust/libmacros.so - due to command line change
> warning: this `if` can be collapsed into the outer `match`
> --> rust/pin-init/internal/src/helpers.rs:91:17
> |
> 91 | / if nesting == 1 {
> 92 | | impl_generics.push(tt.clone());
> 93 | | impl_generics.push(tt);
> 94 | | skip_until_comma = false;
> 95 | | }
> | |_________________^
> |
> = help: for further information visit https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match
> = note: `-W clippy::collapsible-match` implied by `-W clippy::all`
> = help: to override `-W clippy::all` add `#[allow(clippy::collapsible_match)]`
> help: collapse nested if block
> |
> 90 ~ TokenTree::Punct(p) if skip_until_comma && p.as_char() == ','
> 91 ~ && nesting == 1 => {
> 92 | impl_generics.push(tt.clone());
> 93 | impl_generics.push(tt);
> 94 | skip_until_comma = false;
> 95 ~ }
> |
>
> The lint does not have much upside -- when the suggestion may be a good
> one, it would still read fine when nested anyway. And it is the kind of
> lint that may easily bias people to just apply the suggestion instead
> of allowing it.
>
> Thus just let developers decide on their own.
>
> Cc: stable@xxxxxxxxxxxxxxx # Needed in 6.12.y and later (Rust is pinned in older LTSs).
> Link: https://rust-lang.github.io/rust-clippy/master/index.html#collapsible_match [1]
> Link: https://lore.kernel.org/rust-for-linux/CANiq72nWYJna_hdFxjQCQZK6yJBrr1Mb86iKavivV0U0BgufeA@xxxxxxxxxxxxxx/ [2]
> Signed-off-by: Miguel Ojeda <ojeda@xxxxxxxxxx>

Applied (both patches) to `rust-fixes` -- thanks!

[ In addition, as Gary points out [3], the suggestion is also wrong [4] and
in the process of being fixed [5], possibly for Rust 1.97.0:

Link: https://lore.kernel.org/rust-for-linux/DI3YV94TH9I3.1SOHW51552497@xxxxxxxxxxx/
[3]
Link: https://github.com/rust-lang/rust-clippy/issues/16875 [4]
Link: https://github.com/rust-lang/rust-clippy/pull/16878 [5]

- Miguel ]

Ideally, we would have an `Acked-by` on the second one from Binder
maintainers, but it is trivial.

Cheers,
Miguel