error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/issue-21600.rs:14:20 | LL | call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer | ^ cannot borrow as mutable | help: consider changing this to accept closures that implement `FnMut` --> $DIR/issue-21600.rs:14:17 | LL | call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer | ^^^^^^^^^^^^^^ error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/issue-21600.rs:14:17 | LL | call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer | ^^ - mutable borrow occurs due to use of `x` in closure | | | cannot borrow as mutable | help: consider changing this to accept closures that implement `FnMut` --> $DIR/issue-21600.rs:12:13 | LL | call_it(|| { | _____________^ LL | | call_it(|| x.gen()); LL | | call_it(|| x.gen_mut()); //~ ERROR cannot borrow data mutably in a captured outer LL | | //~^ ERROR cannot borrow data mutably in a captured outer LL | | }); | |_____^ error: aborting due to 2 previous errors For more information about this error, try `rustc --explain E0596`.