summaryrefslogtreecommitdiffstats
path: root/src/test/ui/borrowck/mutability-errors.stderr
diff options
context:
space:
mode:
Diffstat (limited to 'src/test/ui/borrowck/mutability-errors.stderr')
-rw-r--r--src/test/ui/borrowck/mutability-errors.stderr345
1 files changed, 345 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/mutability-errors.stderr b/src/test/ui/borrowck/mutability-errors.stderr
new file mode 100644
index 000000000..dd29ae492
--- /dev/null
+++ b/src/test/ui/borrowck/mutability-errors.stderr
@@ -0,0 +1,345 @@
+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(|| {
+ | ------ -- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+LL | x = (1,);
+ | ^^^^^^^^ cannot assign
+
+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(|| {
+ | ------ -- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+LL | x = (1,);
+LL | x.0 = 1;
+ | ^^^^^^^ cannot assign
+
+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(|| {
+ | ------ -- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+...
+LL | &mut x;
+ | ^^^^^^ cannot borrow as mutable
+
+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(|| {
+ | ------ -- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+...
+LL | &mut x.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:46:9
+ |
+LL | fn fn_ref<F: Fn()>(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 | x = (1,);
+ | ^^^^^^^^ cannot assign
+
+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 || {
+ | ------ ------- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+LL | x = (1,);
+LL | x.0 = 1;
+ | ^^^^^^^ cannot assign
+
+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 || {
+ | ------ ------- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+...
+LL | &mut x;
+ | ^^^^^^ cannot borrow as mutable
+
+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 || {
+ | ------ ------- in this closure
+ | |
+ | expects `Fn` instead of `FnMut`
+...
+LL | &mut x.0;
+ | ^^^^^^^^ cannot borrow as mutable
+
+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`.