error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:7:5 | LL | x = 1; | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn one_closure(mut x: i32) { | +++ error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:9:5 | LL | x = 1; | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn one_closure(mut x: i32) { | +++ error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:15:9 | LL | x = 1; | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn two_closures(mut x: i32) { | +++ error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:19:9 | LL | x = 1; | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn two_closures(mut x: i32) { | +++ error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:27:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(|| { | ------ -- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | x = 1;} | - mutable borrow occurs due to use of `x` in closure error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:31:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(move || { | ------ ------- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | x = 1;}); | - mutable borrow occurs due to use of `x` in closure error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:39:10 | LL | x = 1;} | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn two_closures_ref(mut x: i32) { | +++ error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:38:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(|| { | ------ -- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | x = 1;} | - mutable borrow occurs due to use of `x` in closure error[E0594]: cannot assign to `x`, as it is not declared as mutable --> $DIR/closure-captures.rs:43:5 | LL | x = 1;}); | ^^^^^ cannot assign | help: consider changing this to be mutable | LL | fn two_closures_ref(mut x: i32) { | +++ error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:42:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(move || { | ------ ------- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | x = 1;}); | - mutable borrow occurs due to use of `x` in closure error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:48:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(|| { | ------ -- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | *x = 1;}); | -- mutable borrow occurs due to use of `x` in closure error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure --> $DIR/closure-captures.rs:51:9 | LL | fn fn_ref(f: F) -> F { f } | - change this to accept `FnMut` instead of `Fn` ... LL | fn_ref(move || { | ------ ------- in this closure | | | expects `Fn` instead of `FnMut` LL | || | ^^ cannot borrow as mutable LL | *x = 1;}); | -- mutable borrow occurs due to use of `x` in closure error: aborting due to 12 previous errors Some errors have detailed explanations: E0594, E0596. For more information about an error, try `rustc --explain E0594`.