Skip to content

Commit

Permalink
Auto merge of #11666 - c410-f3r:dsadasewqasdsa, r=flip1995
Browse files Browse the repository at this point in the history
Document conflicting lints

Documents the outcome described in #11662 so that the situation can be avoided in the future by other individuals.

changelog: none
  • Loading branch information
bors committed Oct 16, 2023
2 parents ae52ee5 + 8c0870d commit 387d756
Showing 1 changed file with 19 additions and 0 deletions.
19 changes: 19 additions & 0 deletions book/src/development/adding_lints.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,6 +30,7 @@ because that's clearly a non-descriptive name.
- [Documentation](#documentation)
- [Running rustfmt](#running-rustfmt)
- [Debugging](#debugging)
- [Conflicting lints](#conflicting-lints)
- [PR Checklist](#pr-checklist)
- [Adding configuration to a lint](#adding-configuration-to-a-lint)
- [Cheat Sheet](#cheat-sheet)
Expand Down Expand Up @@ -612,6 +613,24 @@ output in the `stdout` part.

[`dbg!`]: https://doc.rust-lang.org/std/macro.dbg.html

## Conflicting lints

There are several lints that deal with the same pattern but suggest different approaches. In other words, some lints
may suggest modifications that go in the opposite direction to what some other lints already propose for the same
code, creating conflicting diagnostics.

When you are creating a lint that ends up in this scenario, the following tips should be encouraged to guide
classification:

* The only case where they should be in the same category is if that category is `restriction`. For example,
`semicolon_inside_block` and `semicolon_outside_block`.
* For all the other cases, they should be in different categories with different levels of allowance. For example,
`implicit_return` (restriction, allow) and `needless_return` (style, warn).

For lints that are in different categories, it is also recommended that at least one of them should be in the
`restriction` category. The reason for this is that the `restriction` group is the only group where we don't
recommend to enable the entire set, but cherry pick lints out of.

## PR Checklist

Before submitting your PR make sure you followed all the basic requirements:
Expand Down

0 comments on commit 387d756

Please sign in to comment.