rust-lang / rust-lang/rust-clippy
Another kind of manual map
Open
Nobody has claimed this yet.
A-lint
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
What it does
Replace Some(f(...?)) or Ok(f(...)?) as a return value with (...).map(f). Potentially an addition to manual_map.
Advantage
Clearer, has less nesting, and can be more concise. Helps discoverability of Option::map etc.
Drawbacks
Can be less concise.
Example
fn maybe_len(maybe_string: Option<&str>) -> Option<usize> {
Some(maybe_string?.len())
}
Could be written as:
fn maybe_len(maybe_string: Option<&str>) -> Option<usize> {
maybe_some_string.map(|s| s.len())
}
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 by reading the proposed transformation and the existing manual_map lint in rust-clippy. Determine which Some(f(...?)) and Ok(f(...)?) return expressions should be covered, how the stated drawbacks affect applicability, and what tests are needed to confirm the rewrite is correct.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100