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 || { LL | | x += 1; | | ^^^^^^ cannot assign LL | | x LL | | } | |_____- in this closure error: aborting due to previous error For more information about this error, try `rustc --explain E0594`.