Summary
Somehow my panic!("blah blah blah {}",id) is not formatted, but there is no error.
cargo fmt -- --config=error_on_unformatted=true exits cleanly, cargo fmt -- -v does not print anything unusual. rustup update then cargo +nightly fmt yields the same output.
cargo build produces warnings because I trimmed the code down into silly example, but it is still valid and can be built successfully. In my original project there is no warning, it just runs normally.
I'm unable to pinpoint the exact cause, but I managed to create a quite minimal example here:
pub fn f(root: Container) -> ! {
let Container { children, .. } = root;
children.into_iter().for_each(|node| {
if let Container{ guid, .. } = node {
if true{
match guid {
Guid::Other(id) => {
panic!(
"Expecting immediate bookmark root, but found user-created folder GUID={}",id
);
}
}
}
}
});
unreachable!();
}
The children.into_iter() line and the id in panic! is affected, lines before or after are still properly formatted. The children.into_iter() and the inner if let Container lines are required to reproduce the issue, without these two lines it formats just fine. I thought it's about line length, but replacing these lines with lots of nested if true makes the issue disappear.
Please see repro.zip for full code.
Expected behavior
A space should be inserted before id
Actual behavior
The code does not change.
Configuration
None, I use the default.
Reproduction Steps
- Download the
repro.zip and extract it
cd into the directory and take note of the existing content of src/main.rs
- Run
cargo fmt and observe that src/main.rs does not change
Meta
- OS: ArchLinux
- Rust toolchain version:
$ cargo --version
cargo 1.98.1 (797e8a9bc 2026-08-05)
$ cargo +nightly --version
cargo 1.100.0-nightly (b2e9d5f9d 2026-09-02)
$ rustup --vesrion
rustup 1.29.0 (2026-03-23)
info: This is the version for the rustup toolchain manager, not the rustc compiler.
info: the currently active `rustc` version is `rustc 1.98.1 (48a229cea 2026-09-01)`
$ cargo fmt -- --version
rustfmt 1.9.0-stable (48a229ceae 2026-09-01)
$ cargo +nightly fmt -- --version
rustfmt 1.10.0-nightly (0ed41eb414 2026-09-04)
Summary
Somehow my
panic!("blah blah blah {}",id)is not formatted, but there is no error.cargo fmt -- --config=error_on_unformatted=trueexits cleanly,cargo fmt -- -vdoes not print anything unusual.rustup updatethencargo +nightly fmtyields the same output.cargo buildproduces warnings because I trimmed the code down into silly example, but it is still valid and can be built successfully. In my original project there is no warning, it just runs normally.I'm unable to pinpoint the exact cause, but I managed to create a quite minimal example here:
The
children.into_iter()line and theidinpanic!is affected, lines before or after are still properly formatted. Thechildren.into_iter()and the innerif let Containerlines are required to reproduce the issue, without these two lines it formats just fine. I thought it's about line length, but replacing these lines with lots of nestedif truemakes the issue disappear.Please see repro.zip for full code.
Expected behavior
A space should be inserted before
idActual behavior
The code does not change.
Configuration
None, I use the default.
Reproduction Steps
repro.zipand extract itcdinto the directory and take note of the existing content ofsrc/main.rscargo fmtand observe thatsrc/main.rsdoes not changeMeta