rust-lang / rust-lang/rustfmt

rustmft 0.9.0-beta splits line needlessly

Open
#2,903 1 comment 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

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

Description

Version: rustfmt 0.9.0-beta (69ad879 2018-07-27)

This code is unchanged with 0.8.2:

fn foo() {
    let some_variable_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = bar(a).baz(b)?;
}

With 0.9.0-beta, it becomes:

fn foo() {
    let some_variable_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx =
        bar(a).baz(b)?;
}

It is not clear to me why the line is split; it is only 99 characters long.

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

Start by reproducing the reported rustfmt 0.9.0-beta behavior with the Rust snippet in the issue and compare it with rustfmt 0.8.2. Trace the formatting decision that splits the assignment despite the reported 99-character length, then add or update coverage so the intended single-line result is verified.

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
38/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.