Skip to content

Formatting use statements sometimes leaves behind spaces and newlines #6277

Open
@antonilol

Description

@antonilol

Formatting the following code with cargo fmt leaves behind a space and curly braces.

Before:

use core::{
    slice,
    
    fmt::{},
};

(there are 4 spaces on the seemingly empty line)

After:

use core::{ slice};

Expected:

use core::slice;

Here a newline is left behind and rustfmt reports an internal error.

Before:

use core::{
    
    fmt::{Debug, Display},
    slice::{},
};

(there are again 4 spaces on the seemingly empty line)

After:

use core::{
    
    fmt::{Debug, Display},
};

(there are again 4 spaces on the seemingly empty line, rustfmt didn't touch them)

Expected:

use core::fmt::{Debug, Display};

Command output:

$ cargo fmt -- --check file.rs 
Diff in /path/to/file.rs at line 1:
 use core::{
     
     fmt::{Debug, Display},
-    slice::{},
 };
 
error[internal]: left behind trailing whitespace
 --> /path/to/file.rs:2:2:1
  |
2 |     
  | ^^^^
  |

warning: rustfmt has failed to format. See previous 1 errors.

Metadata

Metadata

Assignees

No one assigned

    Labels

    a-imports`use` syntaxbugPanic, non-idempotency, invalid code, etc.e-trailing whitespaceerror[internal]: left behind trailing whitespacepoor-formatting

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions