| error[E0382]: borrow of moved value: `tup0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:31:10 |
| | |
| LL | let mut tup0 = (S, S); |
| | -------- move occurs because `tup0` has type `(S, S)`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| LL | // Tuples... |
| LL | let (ref mut borrow, mov) = tup0; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:32:10 |
| | |
| LL | let mut tup1 = (S, S, S); |
| | -------- move occurs because `tup1` has type `(S, S, S)`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let (mov, _, ref mut borrow) = tup1; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup1); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:33:10 |
| | |
| LL | let tup2 = (S, S); |
| | ---- move occurs because `tup2` has type `(S, S)`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let (ref borrow, mov) = tup2; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:34:10 |
| | |
| LL | let tup3 = (S, S, S); |
| | ---- move occurs because `tup3` has type `(S, S, S)`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let (mov, _, ref borrow) = tup3; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup3); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup4` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:39:10 |
| | |
| LL | let tup4 = (S, S); |
| | ---- move occurs because `tup4` has type `(S, S)`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let (ref borrow, mov) = tup4; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup4.0); |
| | ^^^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:41:10 |
| | |
| LL | let mut arr0 = [S, S, S]; |
| | -------- move occurs because `arr0` has type `[S; 3]`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let [mov @ .., ref borrow] = arr0; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:42:36 |
| | |
| LL | let mut arr1 = [S, S, S, S, S]; |
| | -------- move occurs because `arr1` has type `[S; 5]`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let [_, ref mut borrow @ .., _, mov] = arr1; |
| | ---- variable moved due to use in closure |
| ... |
| LL | let [_, mov1, mov2, mov3, _] = &arr1; |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:43:10 |
| | |
| LL | let arr2 = [S, S, S]; |
| | ---- move occurs because `arr2` has type `[S; 3]`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let [mov @ .., ref borrow] = arr2; |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:44:36 |
| | |
| LL | let arr3 = [S, S, S, S, S]; |
| | ---- move occurs because `arr3` has type `[S; 5]`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | let [_, ref borrow @ .., _, mov] = arr3; |
| | ---- variable moved due to use in closure |
| ... |
| LL | let [_, mov1, mov2, mov3, _] = &arr3; |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:75:10 |
| | |
| LL | let mut tup0: Option<(S, S)> = None; |
| | -------- move occurs because `tup0` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| LL | m!((ref mut borrow, mov) = tup0); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:76:10 |
| | |
| LL | let mut tup1: Option<(S, S, S)> = None; |
| | -------- move occurs because `tup1` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| LL | m!((ref mut borrow, mov) = tup0); |
| LL | m!((mov, _, ref mut borrow) = tup1); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup1); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:77:10 |
| | |
| LL | let tup2: Option<(S, S)> = None; |
| | ---- move occurs because `tup2` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((ref borrow, mov) = tup2); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:78:10 |
| | |
| LL | let tup3: Option<(S, S, S)> = None; |
| | ---- move occurs because `tup3` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((mov, _, ref borrow) = tup3); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup3); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup4` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:79:21 |
| | |
| LL | let tup4: Option<(S, S)> = None; |
| | ---- move occurs because `tup4` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((ref borrow, mov) = tup4); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!((ref x, _) = &tup4); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:80:10 |
| | |
| LL | let mut arr0: Option<[S; 3]> = None; |
| | -------- move occurs because `arr0` has type `Option<[S; 3]>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([mov @ .., ref borrow] = arr0); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:81:35 |
| | |
| LL | let mut arr1: Option<[S; 5]> = None; |
| | -------- move occurs because `arr1` has type `Option<[S; 5]>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([_, ref mut borrow @ .., _, mov] = arr1); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!([_, mov1, mov2, mov3, _] = &arr1); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:82:10 |
| | |
| LL | let arr2: Option<[S; 3]> = None; |
| | ---- move occurs because `arr2` has type `Option<[S; 3]>`, which does not implement the `Copy` trait |
| LL | let arr3: Option<[S; 5]> = None; |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([mov @ .., ref borrow] = arr2); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:83:35 |
| | |
| LL | let arr3: Option<[S; 5]> = None; |
| | ---- move occurs because `arr3` has type `Option<[S; 5]>`, which does not implement the `Copy` trait |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([_, ref borrow @ .., _, mov] = arr3); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!([_, mov1, mov2, mov3, _] = &arr3); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:111:10 |
| | |
| LL | let mut tup0: Option<(S, S)> = None; |
| | -------- move occurs because `tup0` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| LL | m!((ref mut borrow, mov) = tup0); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:112:10 |
| | |
| LL | let mut tup1: Option<(S, S, S)> = None; |
| | -------- move occurs because `tup1` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| LL | m!((ref mut borrow, mov) = tup0); |
| LL | m!((mov, _, ref mut borrow) = tup1); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup1); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:113:10 |
| | |
| LL | let tup2: Option<(S, S)> = None; |
| | ---- move occurs because `tup2` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((ref borrow, mov) = tup2); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:114:10 |
| | |
| LL | let tup3: Option<(S, S, S)> = None; |
| | ---- move occurs because `tup3` has type `Option<(S, S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((mov, _, ref borrow) = tup3); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&tup3); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `tup4` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:115:21 |
| | |
| LL | let tup4: Option<(S, S)> = None; |
| | ---- move occurs because `tup4` has type `Option<(S, S)>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!((ref borrow, mov) = tup4); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!((ref x, _) = &tup4); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr0` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:116:10 |
| | |
| LL | let mut arr0: Option<[S; 3]> = None; |
| | -------- move occurs because `arr0` has type `Option<[S; 3]>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([mov @ .., ref borrow] = arr0); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr0); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr1` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:117:35 |
| | |
| LL | let mut arr1: Option<[S; 5]> = None; |
| | -------- move occurs because `arr1` has type `Option<[S; 5]>`, which does not implement the `Copy` trait |
| ... |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([_, ref mut borrow @ .., _, mov] = arr1); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!([_, mov1, mov2, mov3, _] = &arr1); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr2` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:118:10 |
| | |
| LL | let arr2: Option<[S; 3]> = None; |
| | ---- move occurs because `arr2` has type `Option<[S; 3]>`, which does not implement the `Copy` trait |
| LL | let arr3: Option<[S; 5]> = None; |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([mov @ .., ref borrow] = arr2); |
| | ---- variable moved due to use in closure |
| ... |
| LL | drop(&arr2); |
| | ^^^^^ value borrowed here after move |
| |
| error[E0382]: borrow of moved value: `arr3` |
| --> $DIR/move-ref-patterns-closure-captures-inside.rs:119:35 |
| | |
| LL | let arr3: Option<[S; 5]> = None; |
| | ---- move occurs because `arr3` has type `Option<[S; 5]>`, which does not implement the `Copy` trait |
| LL | let mut closure = || { |
| | -- value moved into closure here |
| ... |
| LL | m!([_, ref borrow @ .., _, mov] = arr3); |
| | ---- variable moved due to use in closure |
| ... |
| LL | m!([_, mov1, mov2, mov3, _] = &arr3); |
| | ^^^^^ value borrowed here after move |
| |
| error: aborting due to 27 previous errors |
| |
| For more information about this error, try `rustc --explain E0382`. |