-error[E0382]: use of moved value: `arc_v`
+error[E0382]: borrow of moved value: `arc_v`
--> $DIR/no-reuse-move-arc.rs:12:18
|
+LL | let arc_v = Arc::new(v);
+ | ----- move occurs because `arc_v` has type `std::sync::Arc<std::vec::Vec<i32>>`, which does not implement the `Copy` trait
+LL |
LL | thread::spawn(move|| {
- | ------ value moved (into closure) here
+ | ------ value moved into closure here
+LL | assert_eq!((*arc_v)[3], 4);
+ | ----- variable moved due to use in closure
...
LL | assert_eq!((*arc_v)[2], 3);
- | ^^^^^ value used here after move
- |
- = note: move occurs because `arc_v` has type `std::sync::Arc<std::vec::Vec<i32>>`, which does not implement the `Copy` trait
-
-error[E0382]: use of moved value: `arc_v`
- --> $DIR/no-reuse-move-arc.rs:14:23
- |
-LL | thread::spawn(move|| {
- | ------ value moved (into closure) here
-...
-LL | println!("{:?}", *arc_v);
- | ^^^^^ value used here after move
- |
- = note: move occurs because `arc_v` has type `std::sync::Arc<std::vec::Vec<i32>>`, which does not implement the `Copy` trait
+ | ^^^^^ value borrowed here after move
-error: aborting due to 2 previous errors
+error: aborting due to previous error
For more information about this error, try `rustc --explain E0382`.