Rustfmt add unwanted line wrap and indentation when formatting tuple method call
Nobody has claimed this yet.
- Dominant language
- Rust
- Stars
- 7k
- Forks
- 1.1k
- Avg merge
- 2d 13h
- Merged PRs (30d)
- 24
Description
rustfmt 1.7.0-stable (82e1608d 2023-12-21) formats the tuple method call very weirdly when the tuple takes up several lines. It adds new line after ) and additional indent.
let x = (
"some-very-long-first-argument-of-the-tuple",
"second-argument",
)
.into();
This produces really weird artefacts in some codebases. For example, some axum code:
return (
StatusCode::CONFLICT,
Html(format!("email {email} is already taken")),
)
.into_response()
Expected formatting is the following:
let x = (
"some-very-long-first-argument-of-the-tuple",
"second-argument",
)
.into();
return (
StatusCode::CONFLICT,
Html(format!("email {email} is already taken")),
)
.into_response()
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.7.0-stable on the minimal tuple method-call example and the axum-style example from the report. Trace the formatting path for a multiline tuple followed by a method call. Done means both examples avoid the extra indentation while preserving the expected line break before the method call.
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