rust-lang / rust-lang/rust-clippy

Add an easy way to run clippy with high FPR / trivial lints disabled

Open
#5,537 10 comments 9 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-category C-enhancement E-help-wanted good first issue S-needs-discussion
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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.