error[E0009]: cannot bind by-move and by-ref in the same pattern --> $DIR/for.rs:6:13 | LL | for (n, mut m) in &tups { | - ^^^^^ by-move pattern here | | | both by-ref and by-move used error[E0507]: cannot move out of borrowed content --> $DIR/for.rs:6:23 | LL | for (n, mut m) in &tups { | ----- ^^^^^ cannot move out of borrowed content | | | data moved here | note: move occurs because `m` has type `Foo`, which does not implement the `Copy` trait --> $DIR/for.rs:6:13 | LL | for (n, mut m) in &tups { | ^^^^^ error: aborting due to 2 previous errors Some errors have detailed explanations: E0009, E0507. For more information about an error, try `rustc --explain E0009`.