Closures don't move Copy types by default?

Yep, anything that doesn't involve aliasing:

let mut i = 1;
{
    let mut x = || i += 1;
    x();
    x();
}
println!("{}", i); // prints 3
1 Like