Disable Multiple lints globally

#1

I want to disable multiple lints globally i.e. cargo clippy – -A clippy::lint_name1, lint_name2, lint_name3, lint_name4, lint_name5 … is it possible. If not then how could I do that. to check my own project with clippy

#2

At the beginning of you lib.rs or main.rs file:

#![allow(
  first_lint_name,
  second_lint_name,
  third_lint_name,
)]

Although untested, I guess clippy lints should work too when prefixing the lint names with clippy:: :

#![allow(
  clippy::first_lint_name,
  clippy::second_lint_name,
  clippy::third_lint_name,
)]
#3

thanks Yandros, but if i don’t want to change my source code (of my project), then is there any other way…

#4

As far as I read the documentation, you’ll either need to change your sources or create a script which contains all the lints you want to disable in the cargo clippy command:

https://github.com/rust-lang/rust-clippy#allowingdenying-lints

#5

I have following error when made changes as per your directions.
error: an inner attribute is not permitted in this context --> src/main.rs:22:3 | 22 | #![allow( | ^ | = note: inner attributes, like #![no_std], annotate the item enclosing them, and are usually found at the beginning of source files. Outer attributes, like #[test], annotate the item following them. warning: unknown lint: cast_ref_to_mut --> src/main.rs:23:3 | 23 | cast_ref_to_mut, | ^^^^^^^^^^^^^^^ | = note: #[warn(unknown_lints)] on by default

#6

sorry , i placed your code before main that’s why it gives error… however when I placed it in the beginning of my file (main.rs) then there is no error during cargo clippy. BUT… still not successful to disable my llints…

#7

Just a shot in the dark but have you tried to reload your editor?

#8
  • Tested on the Playground (you can run clippy on the top right)
  • hmm, you pretty much answered yourself at the beginning, that’s why I didn’t suggest that:

    cargo clippy -- -A clippy::trivially_copy_pass_by_ref -A clippy::unreadable_literal
    

    or, with a Unix shell

    RUSTFLAGS="-A clippy::trivially_copy_pass_by_ref -A clippy::unreadable_literal" cargo clippy
    

    This means you can just run cargo clippy after having run:

    • On a Unix shell:

      export RUSTFLAGS="-A clippy::trivially_copy_pass_by_ref -A clippy::unreadable_literal"
      
    • On Windows cmd.exe, it should be something like:

      set RUSTFLAGS="-A clippy::trivially_copy_pass_by_ref -A clippy::unreadable_literal"
      
1 Like
#9

thanks a lot … cargo clippy – -A clippy::trivially_copy_pass_by_ref -A clippy::unreadable_literal
it works for me …

#10

I know you said you don’t want to change your source code, but encoding the list of lints you do / don’t expect to be used in the source files ensures that anyone else who runs clippy on your code gets the right results. (And saves you a lot of typing.)

2 Likes
#11

yes i know … But i am not developing my project. I just want to test someone else project. However, I did changed src/main.rs file with following code in start of main.rs file
#![allow(
first_lint_name,
second_lint_name,
third_lint_name,
)]… it should be good but not working for me… I am not sure why…

#12