1
Fork 0

move tests to borrowck directory, remove feature(nll)

now compare-mode can show us the differences
This commit is contained in:
Niko Matsakis 2018-08-14 08:24:44 -04:00
parent 4e50c5b6e4
commit 58e4b54bd4
16 changed files with 173 additions and 52 deletions

View file

@ -1,5 +1,5 @@
error[E0381]: use of possibly uninitialized variable: `x` error[E0381]: use of possibly uninitialized variable: `x`
--> $DIR/assign_mutable_fields.rs:31:10 --> $DIR/assign_mutable_fields.rs:29:10
| |
LL | drop(x); //~ ERROR LL | drop(x); //~ ERROR
| ^ use of possibly uninitialized `x` | ^ use of possibly uninitialized `x`

View file

@ -14,14 +14,12 @@
// //
// FIXME(#21232) // FIXME(#21232)
#![feature(nll)]
fn assign_both_fields_and_use() { fn assign_both_fields_and_use() {
let mut x: (u32, u32); let mut x: (u32, u32);
x.0 = 1; x.0 = 1;
x.1 = 22; x.1 = 22;
drop(x.0); drop(x.0); //~ ERROR
drop(x.1); drop(x.1); //~ ERROR
} }
fn assign_both_fields_the_use_var() { fn assign_both_fields_the_use_var() {

View file

@ -0,0 +1,21 @@
error[E0381]: use of possibly uninitialized variable: `x.0`
--> $DIR/assign_mutable_fields.rs:21:10
|
LL | drop(x.0); //~ ERROR
| ^^^ use of possibly uninitialized `x.0`
error[E0381]: use of possibly uninitialized variable: `x.1`
--> $DIR/assign_mutable_fields.rs:22:10
|
LL | drop(x.1); //~ ERROR
| ^^^ use of possibly uninitialized `x.1`
error[E0381]: use of possibly uninitialized variable: `x`
--> $DIR/assign_mutable_fields.rs:29:10
|
LL | drop(x); //~ ERROR
| ^ use of possibly uninitialized `x`
error: aborting due to 3 previous errors
For more information about this error, try `rustc --explain E0381`.

View file

@ -1,5 +1,5 @@
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields.rs:19:5 --> $DIR/reassignment_immutable_fields.rs:17:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -7,7 +7,7 @@ LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot assign | ^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields.rs:20:5 --> $DIR/reassignment_immutable_fields.rs:18:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -16,7 +16,7 @@ LL | x.1 = 22; //~ ERROR
| ^^^^^^^^ cannot assign | ^^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields.rs:27:5 --> $DIR/reassignment_immutable_fields.rs:25:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -24,7 +24,7 @@ LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot assign | ^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields.rs:28:5 --> $DIR/reassignment_immutable_fields.rs:26:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -33,7 +33,7 @@ LL | x.1 = 22; //~ ERROR
| ^^^^^^^^ cannot assign | ^^^^^^^^ cannot assign
error[E0381]: use of possibly uninitialized variable: `x` error[E0381]: use of possibly uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields.rs:29:10 --> $DIR/reassignment_immutable_fields.rs:27:10
| |
LL | drop(x); //~ ERROR LL | drop(x); //~ ERROR
| ^ use of possibly uninitialized `x` | ^ use of possibly uninitialized `x`

View file

@ -12,14 +12,12 @@
// //
// FIXME(#21232) // FIXME(#21232)
#![feature(nll)]
fn assign_both_fields_and_use() { fn assign_both_fields_and_use() {
let x: (u32, u32); let x: (u32, u32);
x.0 = 1; //~ ERROR x.0 = 1; //~ ERROR
x.1 = 22; //~ ERROR x.1 = 22; //~ ERROR
drop(x.0); drop(x.0); //~ ERROR
drop(x.1); drop(x.1); //~ ERROR
} }
fn assign_both_fields_the_use_var() { fn assign_both_fields_the_use_var() {

View file

@ -0,0 +1,56 @@
error[E0594]: cannot assign to field `x.0` of immutable binding
--> $DIR/reassignment_immutable_fields.rs:17:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.1` of immutable binding
--> $DIR/reassignment_immutable_fields.rs:18:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
LL | x.1 = 22; //~ ERROR
| ^^^^^^^^ cannot mutably borrow field of immutable binding
error[E0381]: use of possibly uninitialized variable: `x.0`
--> $DIR/reassignment_immutable_fields.rs:19:10
|
LL | drop(x.0); //~ ERROR
| ^^^ use of possibly uninitialized `x.0`
error[E0381]: use of possibly uninitialized variable: `x.1`
--> $DIR/reassignment_immutable_fields.rs:20:10
|
LL | drop(x.1); //~ ERROR
| ^^^ use of possibly uninitialized `x.1`
error[E0594]: cannot assign to field `x.0` of immutable binding
--> $DIR/reassignment_immutable_fields.rs:25:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.1` of immutable binding
--> $DIR/reassignment_immutable_fields.rs:26:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
LL | x.1 = 22; //~ ERROR
| ^^^^^^^^ cannot mutably borrow field of immutable binding
error[E0381]: use of possibly uninitialized variable: `x`
--> $DIR/reassignment_immutable_fields.rs:27:10
|
LL | drop(x); //~ ERROR
| ^ use of possibly uninitialized `x`
error: aborting due to 7 previous errors
Some errors occurred: E0381, E0594.
For more information about an error, try `rustc --explain E0381`.

View file

@ -1,5 +1,5 @@
error[E0594]: cannot assign to `x.a`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.a`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_overlapping.rs:24:5 --> $DIR/reassignment_immutable_fields_overlapping.rs:22:5
| |
LL | let x: Foo; LL | let x: Foo;
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -7,7 +7,7 @@ LL | x.a = 1; //~ ERROR
| ^^^^^^^ cannot assign | ^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.b`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.b`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_overlapping.rs:25:5 --> $DIR/reassignment_immutable_fields_overlapping.rs:23:5
| |
LL | let x: Foo; LL | let x: Foo;
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`

View file

@ -12,8 +12,6 @@
// overlapping, so since `x` is not `mut` we should not permit // overlapping, so since `x` is not `mut` we should not permit
// reassignment. // reassignment.
#![feature(nll)]
union Foo { union Foo {
a: u32, a: u32,
b: u32, b: u32,

View file

@ -0,0 +1,20 @@
error[E0594]: cannot assign to field `x.a` of immutable binding
--> $DIR/reassignment_immutable_fields_overlapping.rs:22:5
|
LL | let x: Foo;
| - consider changing this to `mut x`
LL | x.a = 1; //~ ERROR
| ^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.b` of immutable binding
--> $DIR/reassignment_immutable_fields_overlapping.rs:23:5
|
LL | let x: Foo;
| - consider changing this to `mut x`
LL | x.a = 1; //~ ERROR
LL | x.b = 22; //~ ERROR
| ^^^^^^^^ cannot mutably borrow field of immutable binding
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0594`.

View file

@ -1,5 +1,5 @@
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_twice.rs:19:5 --> $DIR/reassignment_immutable_fields_twice.rs:17:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -8,7 +8,7 @@ LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot assign | ^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_twice.rs:24:5 --> $DIR/reassignment_immutable_fields_twice.rs:22:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -16,7 +16,7 @@ LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot assign | ^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.0`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_twice.rs:25:5 --> $DIR/reassignment_immutable_fields_twice.rs:23:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`
@ -25,7 +25,7 @@ LL | x.0 = 22; //~ ERROR
| ^^^^^^^^ cannot assign | ^^^^^^^^ cannot assign
error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable error[E0594]: cannot assign to `x.1`, as `x` is not declared as mutable
--> $DIR/reassignment_immutable_fields_twice.rs:26:5 --> $DIR/reassignment_immutable_fields_twice.rs:24:5
| |
LL | let x: (u32, u32); LL | let x: (u32, u32);
| - help: consider changing this to be mutable: `mut x` | - help: consider changing this to be mutable: `mut x`

View file

@ -11,8 +11,6 @@
// This should never be allowed -- since `x` is not `mut`, so `x.0` // This should never be allowed -- since `x` is not `mut`, so `x.0`
// cannot be assigned twice. // cannot be assigned twice.
#![feature(nll)]
fn var_then_field() { fn var_then_field() {
let x: (u32, u32); let x: (u32, u32);
x = (22, 44); x = (22, 44);

View file

@ -0,0 +1,38 @@
error[E0594]: cannot assign to field `x.0` of immutable binding
--> $DIR/reassignment_immutable_fields_twice.rs:17:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x = (22, 44);
LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.0` of immutable binding
--> $DIR/reassignment_immutable_fields_twice.rs:22:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
| ^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.0` of immutable binding
--> $DIR/reassignment_immutable_fields_twice.rs:23:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
LL | x.0 = 1; //~ ERROR
LL | x.0 = 22; //~ ERROR
| ^^^^^^^^ cannot mutably borrow field of immutable binding
error[E0594]: cannot assign to field `x.1` of immutable binding
--> $DIR/reassignment_immutable_fields_twice.rs:24:5
|
LL | let x: (u32, u32);
| - consider changing this to `mut x`
...
LL | x.1 = 44; //~ ERROR
| ^^^^^^^^ cannot mutably borrow field of immutable binding
error: aborting due to 4 previous errors
For more information about this error, try `rustc --explain E0594`.

View file

@ -1,19 +1,19 @@
error[E0384]: cannot assign to immutable argument `y` error[E0594]: cannot assign to `*y`, as `y` is not declared as mutable
--> $DIR/immut-function-arguments.rs:15:5 --> $DIR/immut-function-arguments.rs:15:5
| |
LL | fn f(y: Box<isize>) { LL | fn f(y: Box<isize>) {
| - consider changing this to `mut y` | - help: consider changing this to be mutable: `mut y`
LL | *y = 5; //[ast]~ ERROR cannot assign LL | *y = 5; //[ast]~ ERROR cannot assign
| ^^^^^^ cannot assign to immutable argument | ^^^^^^ cannot assign
error[E0384]: cannot assign to immutable argument `q` error[E0594]: cannot assign to `*q`, as `q` is not declared as mutable
--> $DIR/immut-function-arguments.rs:20:35 --> $DIR/immut-function-arguments.rs:20:35
| |
LL | let _frob = |q: Box<isize>| { *q = 2; }; //[ast]~ ERROR cannot assign LL | let _frob = |q: Box<isize>| { *q = 2; }; //[ast]~ ERROR cannot assign
| - ^^^^^^ cannot assign to immutable argument | - ^^^^^^ cannot assign
| | | |
| consider changing this to `mut q` | help: consider changing this to be mutable: `mut q`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0384`. For more information about this error, try `rustc --explain E0594`.

View file

@ -1,19 +1,19 @@
error[E0384]: cannot assign to immutable argument `y` error[E0594]: cannot assign to `*y`, as `y` is not declared as mutable
--> $DIR/immut-function-arguments.rs:15:5 --> $DIR/immut-function-arguments.rs:15:5
| |
LL | fn f(y: Box<isize>) { LL | fn f(y: Box<isize>) {
| - consider changing this to `mut y` | - help: consider changing this to be mutable: `mut y`
LL | *y = 5; //[ast]~ ERROR cannot assign LL | *y = 5; //[ast]~ ERROR cannot assign
| ^^^^^^ cannot assign to immutable argument | ^^^^^^ cannot assign
error[E0384]: cannot assign to immutable argument `q` error[E0594]: cannot assign to `*q`, as `q` is not declared as mutable
--> $DIR/immut-function-arguments.rs:20:35 --> $DIR/immut-function-arguments.rs:20:35
| |
LL | let _frob = |q: Box<isize>| { *q = 2; }; //[ast]~ ERROR cannot assign LL | let _frob = |q: Box<isize>| { *q = 2; }; //[ast]~ ERROR cannot assign
| - ^^^^^^ cannot assign to immutable argument | - ^^^^^^ cannot assign
| | | |
| consider changing this to `mut q` | help: consider changing this to be mutable: `mut q`
error: aborting due to 2 previous errors error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0384`. For more information about this error, try `rustc --explain E0594`.

View file

@ -1,14 +1,11 @@
error[E0384]: cannot assign twice to immutable variable `nyan` error[E0594]: cannot assign to `nyan.how_hungry`, as `nyan` is not declared as mutable
--> $DIR/mutable-class-fields.rs:28:3 --> $DIR/mutable-class-fields.rs:28:3
| |
LL | let nyan : cat = cat(52, 99); LL | let nyan : cat = cat(52, 99);
| ---- | ---- help: consider changing this to be mutable: `mut nyan`
| |
| first assignment to `nyan`
| consider changing this to `mut nyan`
LL | nyan.how_hungry = 0; //[ast]~ ERROR cannot assign LL | nyan.how_hungry = 0; //[ast]~ ERROR cannot assign
| ^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable | ^^^^^^^^^^^^^^^^^^^ cannot assign
error: aborting due to previous error error: aborting due to previous error
For more information about this error, try `rustc --explain E0384`. For more information about this error, try `rustc --explain E0594`.

View file

@ -1,14 +1,11 @@
error[E0384]: cannot assign twice to immutable variable `nyan` error[E0594]: cannot assign to `nyan.how_hungry`, as `nyan` is not declared as mutable
--> $DIR/mutable-class-fields.rs:28:3 --> $DIR/mutable-class-fields.rs:28:3
| |
LL | let nyan : cat = cat(52, 99); LL | let nyan : cat = cat(52, 99);
| ---- | ---- help: consider changing this to be mutable: `mut nyan`
| |
| first assignment to `nyan`
| consider changing this to `mut nyan`
LL | nyan.how_hungry = 0; //[ast]~ ERROR cannot assign LL | nyan.how_hungry = 0; //[ast]~ ERROR cannot assign
| ^^^^^^^^^^^^^^^^^^^ cannot assign twice to immutable variable | ^^^^^^^^^^^^^^^^^^^ cannot assign
error: aborting due to previous error error: aborting due to previous error
For more information about this error, try `rustc --explain E0384`. For more information about this error, try `rustc --explain E0594`.