rustfmt duplicates Trait identifier causing syntax error
Open
Nobody has claimed this yet.
C-bug
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 24
Description
it turns out that after formatting weird_exprs from #7052 with comments, it no longer compiles.
The problem is that given a code like
trait /* 1 */ Trait /* 2 */ {}
rustfmt will turn this into trait Trait Trait which is invalid code
rustfmt --check output.rs
Diff in /tmp/fmt/2/output.rs:1:
-trait /* 1 */ Trait /* 2 */ {}
+trait Trait /* 1 */ Trait /* 2 */ {}
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
Reproduce the weird_exprs case from #7052 using the trait example and run rustfmt --check output.rs to observe the duplicated Trait identifier. Trace the formatting behavior for comments around the trait name; done means formatting preserves valid Rust with one Trait identifier and the resulting output compiles.
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
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 68/100