rust-lang / rust-lang/rustfmt

Formatting adds erroneous comma at end of struct update syntax when missing comma before ..

Open
#5,604 8 comments 3 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

I-poor-formatting P-low
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
2d 13h
Merged PRs (30d)
24

Description

Following up on https://github.com/rust-lang/rust/issues/104373, when using functional record update syntax, if a comma is missed before the ..Default::default(), rustfmt will then "helpfully" add a comma after the ..Default::default().

When you fix the error with the missing comma, you now have a different error ("no trailing commas after...") that the user did not make, as automatic formatting added a comma in its confusion.

I'm new to this project, but the new error enum variant proposed in https://github.com/rust-lang/rust/pull/104504 may be helpful to identify these cases.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Research direction

Reproduce the reported functional record update case in rustfmt, with the comma omitted before ..Default::default(), and inspect the formatter path that handles this syntax. Done means rustfmt does not add an erroneous trailing comma, so fixing the original missing comma does not create a second error.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.