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`.