error[E0381]: used binding `x` isn't initialized --> $DIR/match-cfg-fake-edges.rs:29:13 | LL | let x; | - binding declared here but left uninitialized ... LL | _ if { x = 2; true } => 1, | ----- binding initialized here in some conditions LL | _ if { LL | x; | ^ `x` used here but it isn't initialized | help: consider assigning a value | LL | let x = 0; | +++ error[E0381]: used binding `x` isn't initialized --> $DIR/match-cfg-fake-edges.rs:39:13 | LL | let x; | - binding declared here but left uninitialized LL | match y { LL | _ if let Some(()) = { x = 2; Some(()) } => 1, | ----- binding initialized here in some conditions LL | _ if let Some(()) = { LL | x; | ^ `x` used here but it isn't initialized | help: consider assigning a value | LL | let x = 0; | +++ error[E0382]: use of moved value: `x` --> $DIR/match-cfg-fake-edges.rs:53:13 | LL | let x = String::new(); | - move occurs because `x` has type `String`, which does not implement the `Copy` trait ... LL | false if { drop(x); true } => 1, | - value moved here LL | true => { LL | x; | ^ value used here after move | help: consider cloning the value if the performance cost is acceptable | LL | false if { drop(x.clone()); true } => 1, | ++++++++ error[E0382]: use of moved value: `x` --> $DIR/match-cfg-fake-edges.rs:63:13 | LL | let x = String::new(); | - move occurs because `x` has type `String`, which does not implement the `Copy` trait LL | match y { LL | false if let Some(()) = { drop(x); Some(()) } => 1, | - value moved here LL | true => { LL | x; | ^ value used here after move | help: consider cloning the value if the performance cost is acceptable | LL | false if let Some(()) = { drop(x.clone()); Some(()) } => 1, | ++++++++ error: aborting due to 4 previous errors Some errors have detailed explanations: E0381, E0382. For more information about an error, try `rustc --explain E0381`.