Line indented again each time rustfmt is run until it's 100 columns wide
Open
Nobody has claimed this yet.
A-macros
C-bug
I-non-idempotency
P-medium
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 24
Description
The line containing ::uninit() in the following code is repeatedly indented if rustfmt is run on the file repeatedly. This also causes cargo fmt -- --check to fail, even when cargo fmt was just run, unless the line is as long as permissible.
macro_rules! space_uninit {
($capacity:expr) => {
unsafe {
core::mem::MaybeUninit::<[core::mem::MaybeUninit<core::primitive::u8>; $capacity]>
::uninit()
}
};
}
rustfmt version:
$ rustfmt -V
rustfmt 1.4.37-stable (09c42c4 2021-10-18)
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 running rustfmt 1.4.37 on the Rust snippet containing core::mem::MaybeUninit::<...>::uninit() and repeat formatting to reproduce the indentation drift. Trace the formatter behavior for this macro and qualified path, then verify that repeated runs are stable and cargo fmt -- --check passes immediately after formatting.
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
- Clearly specified
- Newbie friendliness
- 45/100