| error[E0509]: cannot move out of type `S<()>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:20:19 |
| | |
| LL | let _s2 = S { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `B`, which does not implement the `Copy` trait |
| | |
| note: `B` doesn't implement `Copy` or `Clone` |
| --> $DIR/borrowck-struct-update-with-dtor.rs:4:1 |
| | |
| LL | struct B; |
| | ^^^^^^^^ |
| help: if `B` implemented `Clone`, you could clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = S { a: 2, b: s0.b.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `S<B>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:24:19 |
| | |
| LL | let _s2 = S { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `B`, which does not implement the `Copy` trait |
| | |
| note: `B` doesn't implement `Copy` or `Clone` |
| --> $DIR/borrowck-struct-update-with-dtor.rs:4:1 |
| | |
| LL | struct B; |
| | ^^^^^^^^ |
| help: if `B` implemented `Clone`, you could clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = S { a: 2, b: s0.b.clone(), c: s0.c.clone() }; |
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| error[E0509]: cannot move out of type `S<B>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:24:19 |
| | |
| LL | let _s2 = S { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.c` has type `B`, which does not implement the `Copy` trait |
| | |
| note: `B` doesn't implement `Copy` or `Clone` |
| --> $DIR/borrowck-struct-update-with-dtor.rs:4:1 |
| | |
| LL | struct B; |
| | ^^^^^^^^ |
| help: if `B` implemented `Clone`, you could clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = S { a: 2, b: s0.b.clone(), c: s0.c.clone() }; |
| | ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| error[E0509]: cannot move out of type `S<K>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:29:19 |
| | |
| LL | let _s2 = S { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `B`, which does not implement the `Copy` trait |
| | |
| note: `B` doesn't implement `Copy` or `Clone` |
| --> $DIR/borrowck-struct-update-with-dtor.rs:4:1 |
| | |
| LL | struct B; |
| | ^^^^^^^^ |
| help: if `B` implemented `Clone`, you could clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = S { a: 2, b: s0.b.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `S<K>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:29:19 |
| | |
| LL | let _s2 = S { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.c` has type `K`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = S { a: 2, c: s0.c.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `T`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:37:19 |
| | |
| LL | let _s2 = T { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `Box<isize>`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = T { a: 2, b: s0.b.clone() }; |
| | ~~~~~~~~~~~~~~~~~ |
| |
| error[E0509]: cannot move out of type `T`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:42:19 |
| | |
| LL | let _s2 = T { ..s0 }; |
| | ^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `Box<isize>`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = T { b: s0.b.clone(), ..s0 }; |
| | ~~~~~~~~~~~~~~~~~~~~~~~~~ |
| |
| error[E0509]: cannot move out of type `T`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:47:32 |
| | |
| LL | let _s2 = T { a: 2, b: s0.b }; |
| | ^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `Box<isize>`, which does not implement the `Copy` trait |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL | let _s2 = T { a: 2, b: s0.b.clone() }; |
| | ++++++++ |
| |
| error[E0509]: cannot move out of type `V<K>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:52:19 |
| | |
| LL | let _s2 = V { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `Box<isize>`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = V { a: 2, b: s0.b.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `V<K>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:52:19 |
| | |
| LL | let _s2 = V { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.c` has type `K`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = V { a: 2, c: s0.c.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `V<Clonable>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:58:19 |
| | |
| LL | let _s2 = V { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.b` has type `Box<isize>`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = V { a: 2, b: s0.b.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error[E0509]: cannot move out of type `V<Clonable>`, which implements the `Drop` trait |
| --> $DIR/borrowck-struct-update-with-dtor.rs:58:19 |
| | |
| LL | let _s2 = V { a: 2, ..s0 }; |
| | ^^^^^^^^^^^^^^^^ |
| | | |
| | cannot move out of here |
| | move occurs because `s0.c` has type `Clonable`, which does not implement the `Copy` trait |
| | |
| help: clone the value from the field instead of using the functional record update syntax |
| | |
| LL | let _s2 = V { a: 2, c: s0.c.clone(), ..s0 }; |
| | +++++++++++++++++ |
| |
| error: aborting due to 12 previous errors |
| |
| For more information about this error, try `rustc --explain E0509`. |