| warning: irrefutable `if let` pattern |
| --> $DIR/match-cfg-fake-edges.rs:19:8 |
| | |
| LL | if let _ = true { |
| | ^^^^^^^^^^^^ |
| | |
| = note: this pattern will always match, so the `if let` is useless |
| = help: consider replacing the `if let` with a `let` |
| = note: `#[warn(irrefutable_let_patterns)]` on by default |
| |
| error[E0382]: use of moved value: `x` |
| --> $DIR/match-cfg-fake-edges.rs:16:10 |
| | |
| LL | let x = String::new(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | _ => drop(x), |
| | - value moved here |
| ... |
| LL | drop(x); |
| | ^ value used here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | _ => drop(x.clone()), |
| | ++++++++ |
| |
| error[E0382]: use of moved value: `x` |
| --> $DIR/match-cfg-fake-edges.rs:24:10 |
| | |
| LL | let x = String::new(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | drop(x) |
| | - value moved here |
| ... |
| LL | drop(x); |
| | ^ value used here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | drop(x.clone()) |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x.0` |
| --> $DIR/match-cfg-fake-edges.rs:30:5 |
| | |
| LL | (y, _) | (_, y) => (), |
| | - value moved here |
| LL | } |
| LL | &x.0; |
| | ^^^^ value borrowed here after move |
| | |
| = note: move occurs because `x.0` has type `String`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | (ref y, _) | (_, y) => (), |
| | +++ |
| |
| error[E0382]: borrow of moved value: `x.1` |
| --> $DIR/match-cfg-fake-edges.rs:32:5 |
| | |
| LL | (y, _) | (_, y) => (), |
| | - value moved here |
| ... |
| LL | &x.1; |
| | ^^^^ value borrowed here after move |
| | |
| = note: move occurs because `x.1` has type `String`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | (y, _) | (_, ref y) => (), |
| | +++ |
| |
| error[E0382]: borrow of moved value: `x.0` |
| --> $DIR/match-cfg-fake-edges.rs:36:5 |
| | |
| LL | let ((y, _) | (_, y)) = x; |
| | - value moved here |
| LL | &x.0; |
| | ^^^^ value borrowed here after move |
| | |
| = note: move occurs because `x.0` has type `String`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | let ((ref y, _) | (_, y)) = x; |
| | +++ |
| |
| error[E0382]: borrow of moved value: `x.1` |
| --> $DIR/match-cfg-fake-edges.rs:38:5 |
| | |
| LL | let ((y, _) | (_, y)) = x; |
| | - value moved here |
| ... |
| LL | &x.1; |
| | ^^^^ value borrowed here after move |
| | |
| = note: move occurs because `x.1` has type `String`, which does not implement the `Copy` trait |
| help: borrow this binding in the pattern to avoid moving the value |
| | |
| LL | let ((y, _) | (_, ref y)) = x; |
| | +++ |
| |
| error[E0381]: used binding `x` is possibly-uninitialized |
| --> $DIR/match-cfg-fake-edges.rs:72:19 |
| | |
| LL | let x; |
| | - binding declared here but left uninitialized |
| ... |
| LL | _ => drop(x), |
| | - ^ `x` used here but it is possibly-uninitialized |
| | | |
| | if this pattern is matched, `x` is not initialized |
| |
| error[E0381]: used binding `x` isn't initialized |
| --> $DIR/match-cfg-fake-edges.rs:79:16 |
| | |
| LL | let x; |
| | - binding declared here but left uninitialized |
| LL | match y { |
| LL | _ if { x = 2; true } => 1, |
| | ----- binding initialized here in some conditions |
| LL | // Borrowck must not know the guard is always run. |
| LL | _ if { x; false } => 2, |
| | ^ `x` used here but it isn't initialized |
| | |
| help: consider assigning a value |
| | |
| LL | let x = 42; |
| | ++++ |
| |
| error[E0381]: used binding `x` isn't initialized |
| --> $DIR/match-cfg-fake-edges.rs:86:31 |
| | |
| 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(()) = { x; None } => 2, |
| | ^ `x` used here but it isn't initialized |
| | |
| help: consider assigning a value |
| | |
| LL | let x = 42; |
| | ++++ |
| |
| error[E0382]: use of moved value: `x` |
| --> $DIR/match-cfg-fake-edges.rs:99:22 |
| | |
| 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 { drop(x); true } => {}, |
| | - value moved here |
| LL | // Borrowck must not know the guard is not run in the `true` case. |
| LL | true => drop(x), |
| | ^ value used here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | false if { drop(x.clone()); true } => {}, |
| | ++++++++ |
| |
| error[E0382]: use of moved value: `x` |
| --> $DIR/match-cfg-fake-edges.rs:114:22 |
| | |
| 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(()) } => {}, |
| | - value moved here |
| LL | true => drop(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(()) } => {}, |
| | ++++++++ |
| |
| error: aborting due to 11 previous errors; 1 warning emitted |
| |
| Some errors have detailed explanations: E0381, E0382. |
| For more information about an error, try `rustc --explain E0381`. |