Skip to content

Commit

Permalink
Update tests for new spans for nll errors involving closures
Browse files Browse the repository at this point in the history
  • Loading branch information
matthewjasper committed Aug 3, 2018
1 parent 5639e21 commit 12af36a
Show file tree
Hide file tree
Showing 22 changed files with 184 additions and 130 deletions.
20 changes: 10 additions & 10 deletions src/test/ui/borrowck/borrowck-closures-two-mut.stderr
Expand Up @@ -77,11 +77,11 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
--> $DIR/borrowck-closures-two-mut.rs:24:24
|
LL | let c1 = to_fn_mut(|| x = 4);
| -- - previous borrow occurs due to use of `x` in closure
| -- - first borrow occurs due to use of `x` in closure
| |
| first mutable borrow occurs here
LL | let c2 = to_fn_mut(|| x = 5); //~ ERROR cannot borrow `x` as mutable more than once
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| second mutable borrow occurs here
LL | //~| ERROR cannot borrow `x` as mutable more than once
Expand All @@ -92,11 +92,11 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
--> $DIR/borrowck-closures-two-mut.rs:36:24
|
LL | let c1 = to_fn_mut(|| set(&mut x));
| -- - previous borrow occurs due to use of `x` in closure
| -- - first borrow occurs due to use of `x` in closure
| |
| first mutable borrow occurs here
LL | let c2 = to_fn_mut(|| set(&mut x)); //~ ERROR cannot borrow `x` as mutable more than once
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| second mutable borrow occurs here
LL | //~| ERROR cannot borrow `x` as mutable more than once
Expand All @@ -107,11 +107,11 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
--> $DIR/borrowck-closures-two-mut.rs:44:24
|
LL | let c1 = to_fn_mut(|| x = 5);
| -- - previous borrow occurs due to use of `x` in closure
| -- - first borrow occurs due to use of `x` in closure
| |
| first mutable borrow occurs here
LL | let c2 = to_fn_mut(|| set(&mut x)); //~ ERROR cannot borrow `x` as mutable more than once
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| second mutable borrow occurs here
LL | //~| ERROR cannot borrow `x` as mutable more than once
Expand All @@ -122,11 +122,11 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
--> $DIR/borrowck-closures-two-mut.rs:52:24
|
LL | let c1 = to_fn_mut(|| x = 5);
| -- - previous borrow occurs due to use of `x` in closure
| -- - first borrow occurs due to use of `x` in closure
| |
| first mutable borrow occurs here
LL | let c2 = to_fn_mut(|| { let _y = to_fn_mut(|| set(&mut x)); }); // (nested closure)
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| second mutable borrow occurs here
...
Expand All @@ -137,11 +137,11 @@ error[E0499]: cannot borrow `x` as mutable more than once at a time (Mir)
--> $DIR/borrowck-closures-two-mut.rs:65:24
|
LL | let c1 = to_fn_mut(|| set(&mut *x.f));
| -- - previous borrow occurs due to use of `x` in closure
| -- - first borrow occurs due to use of `x` in closure
| |
| first mutable borrow occurs here
LL | let c2 = to_fn_mut(|| set(&mut *x.f));
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| second mutable borrow occurs here
...
Expand Down
@@ -1,8 +1,10 @@
error[E0597]: `books` does not live long enough
--> $DIR/borrowck-escaping-closure-error-1.rs:23:11
--> $DIR/borrowck-escaping-closure-error-1.rs:23:14
|
LL | spawn(|| books.push(4));
| ^^^^^^^^^^^^^^^^ borrowed value does not live long enough
| -- ^^^^^ borrowed value does not live long enough
| |
| value captured here
LL | //~^ ERROR E0373
LL | }
| - `books` dropped here while still borrowed
Expand Down
@@ -1,8 +1,10 @@
error[E0597]: `books` does not live long enough
--> $DIR/borrowck-escaping-closure-error-2.rs:21:14
--> $DIR/borrowck-escaping-closure-error-2.rs:21:17
|
LL | Box::new(|| books.push(4))
| ^^^^^^^^^^^^^^^^ borrowed value does not live long enough
| -- ^^^^^ borrowed value does not live long enough
| |
| value captured here
LL | //~^ ERROR E0373
LL | }
| - `books` dropped here while still borrowed
Expand Down
17 changes: 8 additions & 9 deletions src/test/ui/error-codes/E0504.nll.stderr
@@ -1,17 +1,16 @@
error[E0505]: cannot move out of `fancy_num` because it is borrowed
--> $DIR/E0504.rs:19:13
|
LL | let fancy_ref = &fancy_num;
| ---------- borrow of `fancy_num` occurs here
LL | let fancy_ref = &fancy_num;
| ---------- borrow of `fancy_num` occurs here
LL |
LL | let x = move || {
| _____________^
LL | | println!("child function: {}", fancy_num.num); //~ ERROR E0504
LL | | };
| |_____^ move out of `fancy_num` occurs here
LL | let x = move || {
| ^^^^^^^ move out of `fancy_num` occurs here
LL | println!("child function: {}", fancy_num.num); //~ ERROR E0504
| --------- move occurs due to use in closure
...
LL | println!("main function: {}", fancy_ref.num);
| ------------- borrow later used here
LL | println!("main function: {}", fancy_ref.num);
| ------------- borrow later used here

error: aborting due to previous error

Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/issue-11192.nll.stderr
Expand Up @@ -5,7 +5,7 @@ LL | let mut test = |foo: &Foo| {
| ----------- mutable borrow occurs here
LL | println!("access {}", foo.x);
LL | ptr = box Foo { x: ptr.x + 1 };
| --- previous borrow occurs due to use of `ptr` in closure
| --- first borrow occurs due to use of `ptr` in closure
...
LL | test(&*ptr);
| -----^^^^^-
Expand Down
4 changes: 3 additions & 1 deletion src/test/ui/issue-11873.nll.stderr
Expand Up @@ -2,7 +2,9 @@ error[E0505]: cannot move out of `v` because it is borrowed
--> $DIR/issue-11873.rs:14:14
|
LL | let mut f = || v.push(2);
| ------------ borrow of `v` occurs here
| -- - borrow occurs due to use in closure
| |
| borrow of `v` occurs here
LL | let _w = v; //~ ERROR: cannot move out of `v`
| ^ move out of `v` occurs here
LL |
Expand Down
8 changes: 4 additions & 4 deletions src/test/ui/issue-18783.nll.stderr
Expand Up @@ -2,11 +2,11 @@ error[E0499]: cannot borrow `y` as mutable more than once at a time
--> $DIR/issue-18783.rs:17:21
|
LL | c.push(Box::new(|| y = 0));
| -- - previous borrow occurs due to use of `y` in closure
| -- - first borrow occurs due to use of `y` in closure
| |
| first mutable borrow occurs here
LL | c.push(Box::new(|| y = 0));
| ^^ - borrow occurs due to use of `y` in closure
| ^^ - second borrow occurs due to use of `y` in closure
| |
| second mutable borrow occurs here
LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
Expand All @@ -17,11 +17,11 @@ error[E0499]: cannot borrow `y` as mutable more than once at a time
--> $DIR/issue-18783.rs:26:29
|
LL | Push::push(&c, Box::new(|| y = 0));
| -- - previous borrow occurs due to use of `y` in closure
| -- - first borrow occurs due to use of `y` in closure
| |
| first mutable borrow occurs here
LL | Push::push(&c, Box::new(|| y = 0));
| ^^ - borrow occurs due to use of `y` in closure
| ^^ - second borrow occurs due to use of `y` in closure
| |
| second mutable borrow occurs here
LL | //~^ ERROR cannot borrow `y` as mutable more than once at a time
Expand Down
4 changes: 3 additions & 1 deletion src/test/ui/issue-24357.nll.stderr
Expand Up @@ -2,7 +2,9 @@ error[E0382]: use of moved value: `x`
--> $DIR/issue-24357.rs:16:12
|
LL | let f = move || { let y = x; };
| ---------------------- value moved here
| ------- - variable moved due to use in closure
| |
| value moved into closure here
LL | //~^ NOTE value moved (into closure) here
LL | let z = x;
| ^ value used here after move
Expand Down
10 changes: 7 additions & 3 deletions src/test/ui/issue-27282-move-match-input-into-guard.stderr
@@ -1,11 +1,13 @@
error[E0505]: cannot move out of `b` because it is borrowed
--> $DIR/issue-27282-move-match-input-into-guard.rs:26:16
--> $DIR/issue-27282-move-match-input-into-guard.rs:26:17
|
LL | match b {
| - borrow of `b` occurs here
LL | &mut false => {},
LL | _ if { (|| { let bar = b; *bar = false; })();
| ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ move out of `b` occurs here
| ^^ - move occurs due to use in closure
| |
| move out of `b` occurs here
...
LL | &mut true => { println!("You might think we should get here"); },
| --------- borrow later used here
Expand All @@ -14,7 +16,9 @@ error[E0382]: use of moved value: `*b`
--> $DIR/issue-27282-move-match-input-into-guard.rs:29:14
|
LL | _ if { (|| { let bar = b; *bar = false; })();
| ----------------------------------- value moved here
| -- - variable moved due to use in closure
| |
| value moved into closure here
...
LL | &mut true => { println!("You might think we should get here"); },
| ^^^^ value used here after move
Expand Down
Expand Up @@ -5,7 +5,7 @@ LL | match x {
| - borrow occurs here
...
LL | (|| { *x = None; drop(force_fn_once); })();
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| closure construction occurs here
...
Expand Down
Expand Up @@ -5,7 +5,7 @@ LL | match x {
| - borrow occurs here
...
LL | (|| { *x = None; drop(force_fn_once); })();
| ^^ - borrow occurs due to use of `x` in closure
| ^^ - second borrow occurs due to use of `x` in closure
| |
| closure construction occurs here
...
Expand Down
6 changes: 4 additions & 2 deletions src/test/ui/issue-4335.nll.stderr
Expand Up @@ -5,10 +5,12 @@ LL | id(Box::new(|| *v))
| ^^ cannot move out of captured variable in an `FnMut` closure

error[E0597]: `v` does not live long enough
--> $DIR/issue-4335.rs:16:17
--> $DIR/issue-4335.rs:16:21
|
LL | id(Box::new(|| *v))
| ^^^^^ borrowed value does not live long enough
| -- ^ borrowed value does not live long enough
| |
| value captured here
...
LL | }
| - `v` dropped here while still borrowed
Expand Down
4 changes: 3 additions & 1 deletion src/test/ui/issue-6801.nll.stderr
Expand Up @@ -2,7 +2,9 @@ error[E0505]: cannot move out of `x` because it is borrowed
--> $DIR/issue-6801.rs:29:13
|
LL | let sq = || { *x * *x };
| -------------- borrow of `x` occurs here
| -- - borrow occurs due to use in closure
| |
| borrow of `x` occurs here
LL |
LL | twice(x); //~ ERROR: cannot move out of
| ^ move out of `x` occurs here
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/nll/closure-captures.rs
Expand Up @@ -13,7 +13,7 @@
#![allow(unused)]
#![feature(nll)]

// Should have one error per assigment
// Should have one error per assignment

fn one_closure(x: i32) {
||
Expand Down
4 changes: 2 additions & 2 deletions src/test/ui/nll/closure-requirements/escape-upvar-nested.rs
Expand Up @@ -27,8 +27,8 @@ fn test() {
{
let y = 22;

let mut closure = || { //~ ERROR `y` does not live long enough [E0597]
let mut closure1 = || p = &y;
let mut closure = || {
let mut closure1 = || p = &y; //~ ERROR `y` does not live long enough [E0597]
closure1();
};

Expand Down
26 changes: 12 additions & 14 deletions src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr
@@ -1,7 +1,7 @@
note: External requirements
--> $DIR/escape-upvar-nested.rs:31:32
|
LL | let mut closure1 = || p = &y;
LL | let mut closure1 = || p = &y; //~ ERROR `y` does not live long enough [E0597]
| ^^^^^^^^^
|
= note: defining type: DefId(0/1:10 ~ escape_upvar_nested[317d]::test[0]::{{closure}}[0]::{{closure}}[0]) with closure substs [
Expand All @@ -16,9 +16,9 @@ LL | let mut closure1 = || p = &y;
note: External requirements
--> $DIR/escape-upvar-nested.rs:30:27
|
LL | let mut closure = || { //~ ERROR `y` does not live long enough [E0597]
LL | let mut closure = || {
| ___________________________^
LL | | let mut closure1 = || p = &y;
LL | | let mut closure1 = || p = &y; //~ ERROR `y` does not live long enough [E0597]
LL | | closure1();
LL | | };
| |_________^
Expand Down Expand Up @@ -47,20 +47,18 @@ LL | | }
= note: defining type: DefId(0/0:3 ~ escape_upvar_nested[317d]::test[0]) with substs []

error[E0597]: `y` does not live long enough
--> $DIR/escape-upvar-nested.rs:30:27
--> $DIR/escape-upvar-nested.rs:31:40
|
LL | let mut closure = || { //~ ERROR `y` does not live long enough [E0597]
| ___________________________^
LL | | let mut closure1 = || p = &y;
LL | | closure1();
LL | | };
| |_________^ borrowed value does not live long enough
LL | let mut closure = || {
| -- value captured here
LL | let mut closure1 = || p = &y; //~ ERROR `y` does not live long enough [E0597]
| ^ borrowed value does not live long enough
...
LL | }
| - `y` dropped here while still borrowed
LL | }
| - `y` dropped here while still borrowed
LL |
LL | deref(p);
| - borrow later used here
LL | deref(p);
| - borrow later used here

error: aborting due to previous error

Expand Down
6 changes: 4 additions & 2 deletions src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr
Expand Up @@ -28,10 +28,12 @@ LL | | }
= note: defining type: DefId(0/0:3 ~ escape_upvar_ref[317d]::test[0]) with substs []

error[E0597]: `y` does not live long enough
--> $DIR/escape-upvar-ref.rs:33:27
--> $DIR/escape-upvar-ref.rs:33:35
|
LL | let mut closure = || p = &y;
| ^^^^^^^^^ borrowed value does not live long enough
| -- ^ borrowed value does not live long enough
| |
| value captured here
...
LL | }
| - `y` dropped here while still borrowed
Expand Down
2 changes: 1 addition & 1 deletion src/test/ui/nll/issue-51268.stderr
Expand Up @@ -8,7 +8,7 @@ LL | self.thing.bar(|| {
| ||
LL | || //~^ ERROR cannot borrow `self.thing` as mutable because it is also borrowed as immutable [E0502]
LL | || &self.number;
| || ---- previous borrow occurs due to use of `self` in closure
| || ---- first borrow occurs due to use of `self` in closure
LL | || });
| || ^
| ||__________|
Expand Down

0 comments on commit 12af36a

Please sign in to comment.