error[E0594]: cannot assign to `x`, as it is a captured variable in a `Fn` closure --> $DIR/borrow-immutable-upvar-mutation-impl-trait.rs:11:9 | LL | fn bar() -> impl Fn() -> usize { | --- ------------------ change this to return `FnMut` instead of `Fn` LL | let mut x = 0; LL | move || { | ------- in this closure LL | x += 1; | ^^^^^^ cannot assign error: aborting due to previous error For more information about this error, try `rustc --explain E0594`.