Open
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
Area: Messages for errors, warnings, and lintsArea: Name/path resolution done by `rustc_resolve` specificallyDiagnostics: A diagnostic that is giving misleading or incorrect information.Diagnostics: An error or lint that needs small tweaks.Relevant to the compiler team, which will review and decide on the PR/issue.