about summary refs log tree commit diff
path: root/tests/ui/borrowck/ownership-struct-update-moved-error.stderr
blob: 83cfc7bb412cf80b1d384f4decf99016ccf73ba3 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
error[E0382]: borrow of moved value: `start`
  --> $DIR/ownership-struct-update-moved-error.rs:18:20
   |
LL |     let start = Mine { test: "Foo".to_string(), other_val: 0 };
   |         ----- move occurs because `start` has type `Mine`, which does not implement the `Copy` trait
LL |     let end = Mine { other_val: 1, ..start.make_string_bar() };
   |                                            ----------------- `start` moved due to this method call
LL |     println!("{}", start.test);
   |                    ^^^^^^^^^^ value borrowed here after move
   |
note: `Mine::make_string_bar` takes ownership of the receiver `self`, which moves `start`
  --> $DIR/ownership-struct-update-moved-error.rs:9:28
   |
LL |     fn make_string_bar(mut self) -> Mine {
   |                            ^^^^
   = note: this error originates in the macro `$crate::format_args_nl` which comes from the expansion of the macro `println` (in Nightly builds, run with -Z macro-backtrace for more info)

error: aborting due to 1 previous error

For more information about this error, try `rustc --explain E0382`.