rust-lang / rust-lang/rust-analyzer
Conversion between for_each and for-loop works worng for range expr
Open
Nobody has claimed this yet.
A-assists
S-actionable
- Dominant language
- Rust
- Stars
- 16.9k
- Forks
- 2.2k
- Avg merge
- 1d 12h
- Merged PRs (30d)
- 72
Description
Related to #7741 and #7956
Conversion assists between for-loop and for_each are working well for normal iterable types, but it works wrong for range expr.
Example
- for-loop into for_each
// before
for _ in 0..10 {}
// after
0..10.for_each(|_| {}); // syntax error
- for_each into for-loop
// before
(0..v.len()).for_each(|_| {});
// after
for _ in (0..v.len()) {} // warning by unnecessary parentheses
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 locating the conversion assists for Rust for-loops and for_each expressions, then reproduce both range-expression examples from the issue. Check how each conversion handles range syntax and parentheses; done means both directions produce valid Rust without a syntax error or unnecessary-parentheses warning.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- rust
- Domain
- tooling
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100