fn blah() {
loop {
let blah: Option<String>;
if true {
blah = Some("".to_string());
}
if let Some(blah) = blah.as_ref() {
// ...
}
}
}
Current output
error[E0381]: used binding `blah` is possibly-uninitialized
--> src/lib.rs:8:29
|
3 | let blah: Option<String>;
| ---- binding declared here but left uninitialized
4 | if true {
5 | blah = Some("".to_string());
| ----
| |
| binding initialized here in some conditions
| binding initialized here in some conditions
...
8 | if let Some(blah) = blah.as_ref() {
| ^^^^ `blah` used here but it is possibly-uninitialized
Desired output
error[E0381]: used binding `blah` is possibly-uninitialized
--> src/lib.rs:8:29
|
3 | let blah: Option<String>;
| ---- binding declared here but left uninitialized
4 | if true {
5 | blah = Some("".to_string());
| ---- binding initialized here in some conditions
...
8 | if let Some(blah) = blah.as_ref() {
| ^^^^ `blah` used here but it is possibly-uninitialized
Rationale and extra context
The duplicated labels are unnecessary given that they point at the exact same place, as far as the code the user wrote is concerned.
Code
Current output
Desired output
Rationale and extra context
The duplicated labels are unnecessary given that they point at the exact same place, as far as the code the user wrote is concerned.
Other cases
Noticed when looking at https://github.com/rust-lang/rust/issues/57553#issuecomment-753534282
Rust Version
Anything else?
No response