rust-lang / rust-lang/rust-clippy
Forbid Not operator (`!`)
Open
Nobody has claimed this yet.
A-lint
L-restriction
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
What it does
Forbid the usage of not operator (!) in if $expr, while $expr and assert!($expr).
Use .not() instead. (std::ops::Not)
Lint Name
not_operator_used
Category
style
restriction
Advantage
.not() is more conspicuous than ! and looks continuous.
Drawbacks
No response
Example
assert!(!expr);
if !expr {
// ...
}
while !expr {
// ...
}
Could be written as:
use std::ops::Not;
assert!(expr.not());
if expr.not() {
// ...
}
while expr.not() {
// ...
}
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
No file or test path is named in the issue. Start by locating the existing Rust Clippy lint entry points and tests, then use the three examples as acceptance cases for not_operator_used: the targeted ! forms should be diagnosed, while the .not() forms should remain valid.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 45/100