| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:12:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| LL | let _y = Foo { f:x }; |
| | - value moved here |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | let _y = Foo { f:x.clone() }; |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:18:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| LL | let _y = (x, 3); |
| | - value moved here |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | let _y = (x.clone(), 3); |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:35:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | x |
| | - value moved here |
| ... |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | x.clone() |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `y` |
| --> $DIR/moves-based-on-type-exprs.rs:36:11 |
| | |
| LL | let y = "ho".to_string(); |
| | - move occurs because `y` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | y |
| | - value moved here |
| ... |
| LL | touch(&y); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | y.clone() |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:46:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | true => x, |
| | - value moved here |
| ... |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | true => x.clone(), |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `y` |
| --> $DIR/moves-based-on-type-exprs.rs:47:11 |
| | |
| LL | let y = "ho".to_string(); |
| | - move occurs because `y` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | false => y |
| | - value moved here |
| ... |
| LL | touch(&y); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | false => y.clone() |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:58:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| ... |
| LL | _ if guard(x) => 10, |
| | - value moved here |
| ... |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| note: consider changing this parameter type in function `guard` to borrow instead if owning the value isn't necessary |
| --> $DIR/moves-based-on-type-exprs.rs:6:14 |
| | |
| LL | fn guard(_s: String) -> bool {panic!()} |
| | ----- ^^^^^^ this parameter takes ownership of the value |
| | | |
| | in this function |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | _ if guard(x.clone()) => 10, |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:65:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| LL | let _y = [x]; |
| | - value moved here |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | let _y = [x.clone()]; |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:71:11 |
| | |
| LL | let x = "hi".to_string(); |
| | - move occurs because `x` has type `String`, which does not implement the `Copy` trait |
| LL | let _y = vec![x]; |
| | - value moved here |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | let _y = vec![x.clone()]; |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:77:11 |
| | |
| LL | let x = vec!["hi".to_string()]; |
| | - move occurs because `x` has type `Vec<String>`, which does not implement the `Copy` trait |
| LL | let _y = x.into_iter().next().unwrap(); |
| | ----------- `x` moved due to this method call |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| note: `into_iter` takes ownership of the receiver `self`, which moves `x` |
| --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL |
| help: you can `clone` the value and consume it, but this might not be your desired behavior |
| | |
| LL | let _y = x.clone().into_iter().next().unwrap(); |
| | ++++++++ |
| |
| error[E0382]: borrow of moved value: `x` |
| --> $DIR/moves-based-on-type-exprs.rs:83:11 |
| | |
| LL | let x = vec!["hi".to_string()]; |
| | - move occurs because `x` has type `Vec<String>`, which does not implement the `Copy` trait |
| LL | let _y = [x.into_iter().next().unwrap(); 1]; |
| | ----------- `x` moved due to this method call |
| LL | touch(&x); |
| | ^^ value borrowed here after move |
| | |
| note: `into_iter` takes ownership of the receiver `self`, which moves `x` |
| --> $SRC_DIR/core/src/iter/traits/collect.rs:LL:COL |
| help: you can `clone` the value and consume it, but this might not be your desired behavior |
| | |
| LL | let _y = [x.clone().into_iter().next().unwrap(); 1]; |
| | ++++++++ |
| |
| error: aborting due to 11 previous errors |
| |
| For more information about this error, try `rustc --explain E0382`. |