rust-lang / rust-lang/rust-clippy
selecting a variable via an integer should be using indexing instead
Open
Nobody has claimed this yet.
A-lint
L-unnecessary
T-middle
- Dominant language
- Rust
- Stars
- 13.5k
- Forks
- 2.2k
- Avg merge
- 2d 10h
- Merged PRs (30d)
- 32
Description
I just wrote
if foo == 0 {
a
} else {
assert_eq!(foo, 1);
b
}
which should be
[a, b][foo]
This only applies if a and b do not depend on foo and are simple (e.g. just naming a variable).
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 no implementation files or tests. Start by locating Clippy's lint implementations and tests for expression-selection suggestions, then inspect how conditions and simple operands are represented. Done means recognizing the described pattern only when operands do not depend on foo and suggesting equivalent indexing.
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