rust-lang / rust-lang/rust-clippy
Add an easy way to run clippy with high FPR / trivial lints disabled
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
Hi!
It often happens that users submit a "make clippy happier" PR to one of my projects. These PRs often contain quite a bunch of changes, of which a couple are undeniably great, but majority just shuffle code around. An example of good change would be a removal of (now useless) .into() or .clone(). A typical example of not really good change is .unwrap_or(xs.len()) -> .unwrap_or_else(|| xs.len()).
I've written at some length about this here: https://github.com/rust-analyzer/rowan/pull/57#discussion_r415676159.
I would really love the ability to run cargo clippy --conservative, and only get lints about the code which can be unambiguously improved across all dimensions. (that is, those lints that we probably want to lift eventually into the compiler).
I know that lint categories exists, but:
- they seem to slice the lints across the different axis -- not the FPR range, but the, well, category
- it's unclear how to actually make clippy run only specific category from the command line.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with the existing cargo clippy command-line handling and lint-category configuration, then read the linked rowan discussion for the motivating examples. Compare the current category options with the requested FPR-based selection; done means a clearly defined conservative invocation that runs only the intended lints and has documented behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- cli, tooling
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 32/100