error[E0594]: cannot assign to `*x` which is behind a `&` reference
  --> $DIR/mutability-errors.rs:9:5
   |
LL | fn named_ref(x: &(i32,)) {
   |                 ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
LL |     *x = (1,);
   |     ^^^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be written

error[E0594]: cannot assign to `x.0` which is behind a `&` reference
  --> $DIR/mutability-errors.rs:10:5
   |
LL | fn named_ref(x: &(i32,)) {
   |                 ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
LL |     *x = (1,);
LL |     x.0 = 1;
   |     ^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be written

error[E0596]: cannot borrow `*x` as mutable, as it is behind a `&` reference
  --> $DIR/mutability-errors.rs:11:5
   |
LL | fn named_ref(x: &(i32,)) {
   |                 ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
...
LL |     &mut *x;
   |     ^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable

error[E0596]: cannot borrow `x.0` as mutable, as it is behind a `&` reference
  --> $DIR/mutability-errors.rs:12:5
   |
LL | fn named_ref(x: &(i32,)) {
   |                 ------- help: consider changing this to be a mutable reference: `&mut (i32,)`
...
LL |     &mut x.0;
   |     ^^^^^^^^ `x` is a `&` reference, so the data it refers to cannot be borrowed as mutable

error[E0594]: cannot assign to data in a `&` reference
  --> $DIR/mutability-errors.rs:16:5
   |
LL |     *f() = (1,);
   |     ^^^^^^^^^^^ cannot assign

error[E0594]: cannot assign to data in a `&` reference
  --> $DIR/mutability-errors.rs:17:5
   |
LL |     f().0 = 1;
   |     ^^^^^^^^^ cannot assign

error[E0596]: cannot borrow data in a `&` reference as mutable
  --> $DIR/mutability-errors.rs:18:5
   |
LL |     &mut *f();
   |     ^^^^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow data in a `&` reference as mutable
  --> $DIR/mutability-errors.rs:19:5
   |
LL |     &mut f().0;
   |     ^^^^^^^^^^ cannot borrow as mutable

error[E0594]: cannot assign to `*x` which is behind a `*const` pointer
  --> $DIR/mutability-errors.rs:23:5
   |
LL | unsafe fn named_ptr(x: *const (i32,)) {
   |                        ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
LL |     *x = (1,);
   |     ^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be written

error[E0594]: cannot assign to `x.0` which is behind a `*const` pointer
  --> $DIR/mutability-errors.rs:24:5
   |
LL | unsafe fn named_ptr(x: *const (i32,)) {
   |                        ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
LL |     *x = (1,);
LL |     (*x).0 = 1;
   |     ^^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be written

error[E0596]: cannot borrow `*x` as mutable, as it is behind a `*const` pointer
  --> $DIR/mutability-errors.rs:25:5
   |
LL | unsafe fn named_ptr(x: *const (i32,)) {
   |                        ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
...
LL |     &mut *x;
   |     ^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable

error[E0596]: cannot borrow `x.0` as mutable, as it is behind a `*const` pointer
  --> $DIR/mutability-errors.rs:26:5
   |
LL | unsafe fn named_ptr(x: *const (i32,)) {
   |                        ------------- help: consider changing this to be a mutable pointer: `*mut (i32,)`
...
LL |     &mut (*x).0;
   |     ^^^^^^^^^^^ `x` is a `*const` pointer, so the data it refers to cannot be borrowed as mutable

error[E0594]: cannot assign to data in a `*const` pointer
  --> $DIR/mutability-errors.rs:30:5
   |
LL |     *f() = (1,);
   |     ^^^^^^^^^^^ cannot assign

error[E0594]: cannot assign to data in a `*const` pointer
  --> $DIR/mutability-errors.rs:31:5
   |
LL |     (*f()).0 = 1;
   |     ^^^^^^^^^^^^ cannot assign

error[E0596]: cannot borrow data in a `*const` pointer as mutable
  --> $DIR/mutability-errors.rs:32:5
   |
LL |     &mut *f();
   |     ^^^^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow data in a `*const` pointer as mutable
  --> $DIR/mutability-errors.rs:33:5
   |
LL |     &mut (*f()).0;
   |     ^^^^^^^^^^^^^ cannot borrow as mutable

error[E0594]: cannot assign to `x`, as it is a captured variable in a `Fn` closure
  --> $DIR/mutability-errors.rs:40:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(|| {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
   | |         ^^^^^^^^ cannot assign
LL | |         x.0 = 1;
LL | |         &mut x;
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0594]: cannot assign to `x.0`, as `Fn` closures cannot mutate their captured variables
  --> $DIR/mutability-errors.rs:41:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(|| {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
   | |         ^^^^^^^ cannot assign
LL | |         &mut x;
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure
  --> $DIR/mutability-errors.rs:42:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(|| {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
LL | |         &mut x;
   | |         ^^^^^^ cannot borrow as mutable
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0596]: cannot borrow `x.0` as mutable, as `Fn` closures cannot mutate their captured variables
  --> $DIR/mutability-errors.rs:43:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(|| {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
LL | |         &mut x;
LL | |         &mut x.0;
   | |         ^^^^^^^^ cannot borrow as mutable
LL | |     });
   | |_____- in this closure

error[E0594]: cannot assign to `x`, as it is a captured variable in a `Fn` closure
  --> $DIR/mutability-errors.rs:46:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(move || {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
   | |         ^^^^^^^^ cannot assign
LL | |         x.0 = 1;
LL | |         &mut x;
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0594]: cannot assign to `x.0`, as `Fn` closures cannot mutate their captured variables
  --> $DIR/mutability-errors.rs:47:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(move || {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
   | |         ^^^^^^^ cannot assign
LL | |         &mut x;
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0596]: cannot borrow `x` as mutable, as it is a captured variable in a `Fn` closure
  --> $DIR/mutability-errors.rs:48:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(move || {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
LL | |         &mut x;
   | |         ^^^^^^ cannot borrow as mutable
LL | |         &mut x.0;
LL | |     });
   | |_____- in this closure

error[E0596]: cannot borrow `x.0` as mutable, as `Fn` closures cannot mutate their captured variables
  --> $DIR/mutability-errors.rs:49:9
   |
LL |   fn fn_ref<F: Fn()>(f: F) -> F { f }
   |                         - change this to accept `FnMut` instead of `Fn`
...
LL |       fn_ref(move || {
   |  _____------_-
   | |     |
   | |     expects `Fn` instead of `FnMut`
LL | |         x = (1,);
LL | |         x.0 = 1;
LL | |         &mut x;
LL | |         &mut x.0;
   | |         ^^^^^^^^ cannot borrow as mutable
LL | |     });
   | |_____- in this closure

error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
  --> $DIR/mutability-errors.rs:54:5
   |
LL | fn imm_local(x: (i32,)) {
   |              - help: consider changing this to be mutable: `mut x`
LL |     &mut x;
   |     ^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow `x.0` as mutable, as `x` is not declared as mutable
  --> $DIR/mutability-errors.rs:55:5
   |
LL | fn imm_local(x: (i32,)) {
   |              - help: consider changing this to be mutable: `mut x`
LL |     &mut x;
LL |     &mut x.0;
   |     ^^^^^^^^ cannot borrow as mutable

error[E0594]: cannot assign to `x`, as it is not declared as mutable
  --> $DIR/mutability-errors.rs:60:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
LL |     || {
LL |         x = (1,);
   |         ^^^^^^^^ cannot assign

error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
  --> $DIR/mutability-errors.rs:61:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         x.0 = 1;
   |         ^^^^^^^ cannot assign

error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
  --> $DIR/mutability-errors.rs:62:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         &mut x;
   |         ^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow `x.0` as mutable, as `x` is not declared as mutable
  --> $DIR/mutability-errors.rs:63:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         &mut x.0;
   |         ^^^^^^^^ cannot borrow as mutable

error[E0594]: cannot assign to `x`, as it is not declared as mutable
  --> $DIR/mutability-errors.rs:66:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         x = (1,);
   |         ^^^^^^^^ cannot assign

error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
  --> $DIR/mutability-errors.rs:67:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         x.0 = 1;
   |         ^^^^^^^ cannot assign

error[E0596]: cannot borrow `x` as mutable, as it is not declared as mutable
  --> $DIR/mutability-errors.rs:68:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         &mut x;
   |         ^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow `x.0` as mutable, as `x` is not declared as mutable
  --> $DIR/mutability-errors.rs:69:9
   |
LL | fn imm_capture(x: (i32,)) {
   |                - help: consider changing this to be mutable: `mut x`
...
LL |         &mut x.0;
   |         ^^^^^^^^ cannot borrow as mutable

error[E0594]: cannot assign to immutable static item `X`
  --> $DIR/mutability-errors.rs:76:5
   |
LL |     X = (1,);
   |     ^^^^^^^^ cannot assign

error[E0594]: cannot assign to `X.0`, as `X` is an immutable static item
  --> $DIR/mutability-errors.rs:77:5
   |
LL |     X.0 = 1;
   |     ^^^^^^^ cannot assign

error[E0596]: cannot borrow immutable static item `X` as mutable
  --> $DIR/mutability-errors.rs:78:5
   |
LL |     &mut X;
   |     ^^^^^^ cannot borrow as mutable

error[E0596]: cannot borrow `X.0` as mutable, as `X` is an immutable static item
  --> $DIR/mutability-errors.rs:79:5
   |
LL |     &mut X.0;
   |     ^^^^^^^^ cannot borrow as mutable

error: aborting due to 38 previous errors

Some errors have detailed explanations: E0594, E0596.
For more information about an error, try `rustc --explain E0594`.
