rust-lang / rust-lang/rust-clippy
New lint: `manual_open_range_patterns`
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
What it does
Suggest using open range patterns instead of inclusive range patterns for integer types with upper bound equal to the maximum of that type.
Categories
- Kind: Style
Advantages
The suggested code is shorter and more readable. The shorter syntax doesn't require the MAX constant and so the variables type doesn't need to be repeated.
Drawbacks
None.
Explicitly including the upper bound gives no additional information. It just repeats the type and confirms that it has an upper bound. I expect this lint to be uncontroversial.
Example
match x as u32 {
0 => println!("zero!"),
1..=u32::MAX => println!("positive number!"),
}
Could be written as:
match x as u32 {
0 => println!("zero!"),
1.. => println!("positive number!"),
}
Configuration
MSRV 1.55
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
The issue names the proposed manual_open_range_patterns lint but provides no file, test, or entry point. Start by locating existing Clippy lint implementations for range patterns, then use the Rust examples and MSRV 1.55 as the behavioral baseline; done means the lint suggests open ranges for the described integer bounds and has coverage for that behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100