rust-lang / rust-clippy

A bunch of lints to catch common mistakes and improve your Rust code. Book: https://doc.rust-lang.org/clippy/
https://rust-lang.github.io/rust-clippy/
Other
11.28k stars 1.52k forks source link

lints to disable in tests #12581

Open ijackson opened 5 months ago

ijackson commented 5 months ago

Description

In Arti have things like the following:

#[cfg(test)]
mod test {
    // @@ begin test lint list maintained by maint/add_warning @@
    #![allow(clippy::bool_assert_comparison)]
    #![allow(clippy::clone_on_copy)]
    #![allow(clippy::dbg_macro)]
    #![allow(clippy::mixed_attributes_style)]
    #![allow(clippy::print_stderr)]
    #![allow(clippy::print_stdout)]
    #![allow(clippy::single_char_pattern)]
    #![allow(clippy::unwrap_used)]
    #![allow(clippy::unchecked_duration_subtraction)]
    #![allow(clippy::useless_vec)]
    #![allow(clippy::needless_pass_by_value)]
    //! <!-- @@ end test lint list maintained by maint/add_warning @@ -->
    // TODO add this next lint to maint/add_warning, for all tests
    #![allow(clippy::iter_overeager_cloned)]

Our maint/add_warning is a Python script that keeps the (currently) 236 copies of this lint block in sync across our 61 crates.

It would be nice if there were a way to systematically and centrally disable these lints for all our tests. Probably, many of them should be disabled by default.

(@llogiq suggested I should file this ticket)

Version

No response

Additional Labels

No response

llogiq commented 5 months ago

Thank you!

llogiq commented 4 months ago

Finally I got around to looking into your list. I found that most lints will already ignore test code if configured so:

I'll have a look at the other lints when I find a few spare minutes.