rust-lang / rust-lang/rustfmt

Comment before a list element is changed to an end-of-line comment for a different element

Open
#6,132 4 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

A-comments C-bug I-unexpected-motion S-has-mcve
Dominant language
Rust
Stars
7k
Forks
1.1k
Avg merge
2d 13h
Merged PRs (30d)
24

Description

(playground link)

Input:

fn hello() {
    let _slice = &[
        // First item
        0x0001,

        // Second item
        0x0002,
    ];
    two_arg_fn(
        // First arg
        1,
        
        // Second arg
        2,
    );
}

fn two_arg_fn(_x: u32, _y: u32) {}

Output:

fn hello() {
    let _slice = &[
        // First item
        0x0001, // Second item
        0x0002,
    ];
    two_arg_fn(
        // First arg
        1, // Second arg
        2,
    );
}

fn two_arg_fn(_x: u32, _y: u32) {}

Here the intent was to have a comment associated with the element on the following line, but rustfmt confusingly turned the comment for the second element into an end-of-line comment for the first element.


$ rustfmt --version
rustfmt 1.7.0-stable (7cf61ebd 2024-03-27)

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 report with the linked Rust Playground example or the rustfmt 1.7.0-stable CLI. Add coverage for both the array and function-call examples, and verify that comments remain attached to the following elements rather than becoming end-of-line comments for preceding elements.

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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.