- Notifications
You must be signed in to change notification settings - Fork 13.9k
Open
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyD-incorrectDiagnostics: A diagnostic that is giving misleading or incorrect information.Diagnostics: A diagnostic that is giving misleading or incorrect information.D-papercutDiagnostics: An error or lint that needs small tweaks.Diagnostics: An error or lint that needs small tweaks.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.
Description
Uplifted from #141213 (comment). Given
struct Type { field: i32 } impl Type { fn method(&self) { {field} } }
the compiler outputs
error[E0425]: cannot find value `field` in this scope --> file.rs:4:25 | 4 | fn method(&self) { {field} } | ^^^^^ | = help: you might have meant to use the available field in a format string: `"{}", self.field` warning: unnecessary braces around block return value --> file.rs:4:24 | 4 | fn method(&self) { {field} } | ^ ^ | = note: `#[warn(unused_braces)]` on by default help: remove these braces | 4 - fn method(&self) { {field} } 4 + fn method(&self) { field } | error: aborting due to 1 previous error; 1 warning emitted
Notice the (unstructured) suggestion you might have meant to use the available field in a format string: `"{}", self.field`
which is obviously incorrect, there's no format string in sight and fn method(&self) { "{}", self.field; }
is butchered.
For context, this regressed in PR #141213.
Version Information
rustc 1.89.0-nightly (c43786c9b 2025-05-21) binary: rustc commit-hash: c43786c9b7b8d8dcc3f9c604e0e3074c16ed69d3 commit-date: 2025-05-21 host: x86_64-unknown-linux-gnu release: 1.89.0-nightly LLVM version: 20.1.5
Metadata
Metadata
Assignees
Labels
A-diagnosticsArea: Messages for errors, warnings, and lintsArea: Messages for errors, warnings, and lintsA-resolveArea: Name/path resolution done by `rustc_resolve` specificallyArea: Name/path resolution done by `rustc_resolve` specificallyD-incorrectDiagnostics: A diagnostic that is giving misleading or incorrect information.Diagnostics: A diagnostic that is giving misleading or incorrect information.D-papercutDiagnostics: An error or lint that needs small tweaks.Diagnostics: An error or lint that needs small tweaks.T-compilerRelevant to the compiler team, which will review and decide on the PR/issue.Relevant to the compiler team, which will review and decide on the PR/issue.