rust-lang/rustfmt

rustfmt eats attributes while formatting functions with variadic parameters

Open

#6561 opened on May 11, 2025

View on GitHub
 (3 comments) (0 reactions) (0 assignees)Rust (4,893 stars) (760 forks)batch import
C-buggood first issue

Description

If you format...

#[allow()]
unsafe extern "C" {
    #[allow()]
    pub fn foo(#[allow()] arg: *mut u8, #[allow()]...);
}

Then it will format into

#[allow()]
unsafe extern "C" {
    #[allow()]
    pub fn foo(#[allow()] arg: *mut u8, ...);
}

(The choice of attribute seems irrelevant, I've used allow because it compiles in any position).

Note that this position is explicitly documented at https://doc.rust-lang.org/nightly/reference/attributes.html#r-attributes.allowed-position

Contributor guide