error[E0507]: cannot move out of a shared reference --> $DIR/for.rs:6:23 | LL | for (n, mut m) in &tups { | ----- ^^^^^ | | | data moved here | move occurs because `m` has type `Foo`, which does not implement the `Copy` trait | help: consider borrowing the pattern binding | LL | for (n, ref mut m) in &tups { | +++ error: aborting due to 1 previous error For more information about this error, try `rustc --explain E0507`.