diff options
| author | Matthew Jasper <mjjasper1@gmail.com> | 2018-08-01 21:02:10 +0100 |
|---|---|---|
| committer | Matthew Jasper <mjjasper1@gmail.com> | 2018-08-03 23:00:27 +0100 |
| commit | 12af36a5c4638755be622c220efadffb1864f2ab (patch) | |
| tree | 6fe769ea63a0e1f2160a7e81cec74a37759aee18 /src/test | |
| parent | 5639e2173b2506ed540ca4a563f0e63731e56bcb (diff) | |
| download | rust-12af36a5c4638755be622c220efadffb1864f2ab.tar.gz rust-12af36a5c4638755be622c220efadffb1864f2ab.zip | |
Update tests for new spans for nll errors involving closures
Diffstat (limited to 'src/test')
22 files changed, 184 insertions, 130 deletions
diff --git a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr b/src/test/ui/borrowck/borrowck-closures-two-mut.stderr index a4f8e8b408b..6186c383919 100644 --- a/src/test/ui/borrowck/borrowck-closures-two-mut.stderr +++ b/src/test/ui/borrowck/borrowck-closures-two-mut.stderr @@ -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 @@ -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 @@ -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 @@ -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 ... @@ -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 ... diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.nll.stderr b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.nll.stderr index b15f156b7c2..426419a7b3b 100644 --- a/src/test/ui/borrowck/borrowck-escaping-closure-error-1.nll.stderr +++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-1.nll.stderr @@ -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 diff --git a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.nll.stderr b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.nll.stderr index 8c643973af6..d5f3a0ed6d8 100644 --- a/src/test/ui/borrowck/borrowck-escaping-closure-error-2.nll.stderr +++ b/src/test/ui/borrowck/borrowck-escaping-closure-error-2.nll.stderr @@ -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 diff --git a/src/test/ui/error-codes/E0504.nll.stderr b/src/test/ui/error-codes/E0504.nll.stderr index ec30bb306fc..6f4823326ff 100644 --- a/src/test/ui/error-codes/E0504.nll.stderr +++ b/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 diff --git a/src/test/ui/issue-11192.nll.stderr b/src/test/ui/issue-11192.nll.stderr index d5a67083a23..a7e6c9f2b33 100644 --- a/src/test/ui/issue-11192.nll.stderr +++ b/src/test/ui/issue-11192.nll.stderr @@ -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); | -----^^^^^- diff --git a/src/test/ui/issue-11873.nll.stderr b/src/test/ui/issue-11873.nll.stderr index c12cbbfdd53..bf4fed06dee 100644 --- a/src/test/ui/issue-11873.nll.stderr +++ b/src/test/ui/issue-11873.nll.stderr @@ -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 | diff --git a/src/test/ui/issue-18783.nll.stderr b/src/test/ui/issue-18783.nll.stderr index 6bb7b4229d7..8acdc73bf0e 100644 --- a/src/test/ui/issue-18783.nll.stderr +++ b/src/test/ui/issue-18783.nll.stderr @@ -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 @@ -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 diff --git a/src/test/ui/issue-24357.nll.stderr b/src/test/ui/issue-24357.nll.stderr index f601a6fbc88..e35f443548d 100644 --- a/src/test/ui/issue-24357.nll.stderr +++ b/src/test/ui/issue-24357.nll.stderr @@ -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 diff --git a/src/test/ui/issue-27282-move-match-input-into-guard.stderr b/src/test/ui/issue-27282-move-match-input-into-guard.stderr index d264bf8d273..91c51bcd058 100644 --- a/src/test/ui/issue-27282-move-match-input-into-guard.stderr +++ b/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 @@ -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 diff --git a/src/test/ui/issue-27282-mutate-before-diverging-arm-1.stderr b/src/test/ui/issue-27282-mutate-before-diverging-arm-1.stderr index fb11090c222..a9d9651fb2a 100644 --- a/src/test/ui/issue-27282-mutate-before-diverging-arm-1.stderr +++ b/src/test/ui/issue-27282-mutate-before-diverging-arm-1.stderr @@ -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 ... diff --git a/src/test/ui/issue-27282-mutate-before-diverging-arm-2.stderr b/src/test/ui/issue-27282-mutate-before-diverging-arm-2.stderr index 6e643d30185..582d0fd678c 100644 --- a/src/test/ui/issue-27282-mutate-before-diverging-arm-2.stderr +++ b/src/test/ui/issue-27282-mutate-before-diverging-arm-2.stderr @@ -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 ... diff --git a/src/test/ui/issue-4335.nll.stderr b/src/test/ui/issue-4335.nll.stderr index 40d7838a803..4ccd24fa459 100644 --- a/src/test/ui/issue-4335.nll.stderr +++ b/src/test/ui/issue-4335.nll.stderr @@ -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 diff --git a/src/test/ui/issue-6801.nll.stderr b/src/test/ui/issue-6801.nll.stderr index 5436397c68e..3ca2f39470d 100644 --- a/src/test/ui/issue-6801.nll.stderr +++ b/src/test/ui/issue-6801.nll.stderr @@ -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 diff --git a/src/test/ui/nll/closure-captures.rs b/src/test/ui/nll/closure-captures.rs index 03a22bb79a8..16385ca2499 100644 --- a/src/test/ui/nll/closure-captures.rs +++ b/src/test/ui/nll/closure-captures.rs @@ -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) { || diff --git a/src/test/ui/nll/closure-requirements/escape-upvar-nested.rs b/src/test/ui/nll/closure-requirements/escape-upvar-nested.rs index 598839f872e..ce44903e6e6 100644 --- a/src/test/ui/nll/closure-requirements/escape-upvar-nested.rs +++ b/src/test/ui/nll/closure-requirements/escape-upvar-nested.rs @@ -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(); }; diff --git a/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr b/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr index bf12800e58d..ed2ae2f27b5 100644 --- a/src/test/ui/nll/closure-requirements/escape-upvar-nested.stderr +++ b/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 [ @@ -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 | | }; | |_________^ @@ -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 diff --git a/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr b/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr index 4b0dad3bda0..8db56deeb1f 100644 --- a/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr +++ b/src/test/ui/nll/closure-requirements/escape-upvar-ref.stderr @@ -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 diff --git a/src/test/ui/nll/issue-51268.stderr b/src/test/ui/nll/issue-51268.stderr index 269bc368305..2ecfe03e7de 100644 --- a/src/test/ui/nll/issue-51268.stderr +++ b/src/test/ui/nll/issue-51268.stderr @@ -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 | || }); | || ^ | ||__________| diff --git a/src/test/ui/region-borrow-params-issue-29793-small.nll.stderr b/src/test/ui/region-borrow-params-issue-29793-small.nll.stderr index ae7193ef4fa..d0d6bd4c785 100644 --- a/src/test/ui/region-borrow-params-issue-29793-small.nll.stderr +++ b/src/test/ui/region-borrow-params-issue-29793-small.nll.stderr @@ -1,44 +1,54 @@ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:19:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:19:34 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | }; | - `x` dropped here while still borrowed error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:19:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:19:45 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:34:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:34:34 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | }; | - `x` dropped here while still borrowed error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:34:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:34:45 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:65:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:65:34 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | }; | - `x` dropped here while still borrowed @@ -50,10 +60,12 @@ LL | fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:65:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:65:45 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -65,10 +77,12 @@ LL | fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:76:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:76:34 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | }; | - `x` dropped here while still borrowed @@ -80,10 +94,12 @@ LL | fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:76:17 + --> $DIR/region-borrow-params-issue-29793-small.rs:76:45 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -95,10 +111,12 @@ LL | fn g<'a>(x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:100:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:100:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -110,10 +128,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:100:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:100:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -125,10 +145,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:114:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:114:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -140,10 +162,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:114:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:114:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -155,10 +179,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:142:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:142:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -170,10 +196,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:142:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:142:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -185,10 +213,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:157:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:157:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -200,10 +230,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:157:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:157:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -215,10 +247,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:185:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:185:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -230,10 +264,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:185:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:185:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 @@ -245,10 +281,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `x` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:199:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:199:38 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `y`) - | ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ borrowed value does not live long enough + | --------- ^ borrowed value does not live long enough + | | + | value captured here ... LL | } | - `x` dropped here while still borrowed @@ -260,10 +298,12 @@ LL | fn g<'a>(&self, x: usize, y:usize) -> Box<Fn(bool) -> usize + 'a> { | ^^ error[E0597]: `y` does not live long enough - --> $DIR/region-borrow-params-issue-29793-small.rs:199:21 + --> $DIR/region-borrow-params-issue-29793-small.rs:199:49 | LL | let f = |t: bool| if t { x } else { y }; // (separate errors for `x` vs `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 diff --git a/src/test/ui/regions-nested-fns-2.nll.stderr b/src/test/ui/regions-nested-fns-2.nll.stderr index 13e34d85210..1b5bb7d5007 100644 --- a/src/test/ui/regions-nested-fns-2.nll.stderr +++ b/src/test/ui/regions-nested-fns-2.nll.stderr @@ -1,13 +1,14 @@ error[E0597]: `y` does not live long enough - --> $DIR/regions-nested-fns-2.rs:16:9 + --> $DIR/regions-nested-fns-2.rs:18:25 | -LL | / |z| { -LL | | //~^ ERROR E0373 -LL | | if false { &y } else { z } -LL | | }); - | |_________^ borrowed value does not live long enough -LL | } - | - `y` dropped here while still borrowed +LL | |z| { + | --- value captured here +LL | //~^ ERROR E0373 +LL | if false { &y } else { z } + | ^ borrowed value does not live long enough +LL | }); +LL | } + | - `y` dropped here while still borrowed | = note: borrowed value must be valid for the static lifetime... diff --git a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr index b3563f1b620..c7dbc043cda 100644 --- a/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr +++ b/src/test/ui/span/borrowck-call-is-borrow-issue-12224.nll.stderr @@ -8,7 +8,7 @@ LL | f(Box::new(|| { | | LL | | //~^ ERROR: cannot borrow `f` as mutable more than once LL | | f((Box::new(|| {}))) - | | - borrow occurs due to use of `f` in closure + | | - second borrow occurs due to use of `f` in closure LL | | })); | |_______- borrow later used here @@ -37,18 +37,17 @@ LL | foo(f); error[E0505]: cannot move out of `f` because it is borrowed --> $DIR/borrowck-call-is-borrow-issue-12224.rs:65:16 | -LL | f(Box::new(|a| { - | _____-__________^ - | | | - | |_____borrow of `f` occurs here - | || -LL | || foo(f); -LL | || //~^ ERROR cannot move `f` into closure because it is borrowed -LL | || //~| ERROR cannot move out of captured outer variable in an `FnMut` closure -LL | || }), 3); - | ||_____^____- borrow later used here - | |_____| - | move out of `f` occurs here +LL | f(Box::new(|a| { + | - ^^^ move out of `f` occurs here + | | + | _____borrow of `f` occurs here + | | +LL | | foo(f); + | | - move occurs due to use in closure +LL | | //~^ ERROR cannot move `f` into closure because it is borrowed +LL | | //~| ERROR cannot move out of captured outer variable in an `FnMut` closure +LL | | }), 3); + | |__________- borrow later used here error: aborting due to 5 previous errors diff --git a/src/test/ui/span/send-is-not-static-ensures-scoping.nll.stderr b/src/test/ui/span/send-is-not-static-ensures-scoping.nll.stderr index 1753f710b88..c14cb709893 100644 --- a/src/test/ui/span/send-is-not-static-ensures-scoping.nll.stderr +++ b/src/test/ui/span/send-is-not-static-ensures-scoping.nll.stderr @@ -11,19 +11,18 @@ LL | bad.join(); | --- borrow later used here error[E0597]: `y` does not live long enough - --> $DIR/send-is-not-static-ensures-scoping.rs:29:16 + --> $DIR/send-is-not-static-ensures-scoping.rs:30:22 | -LL | scoped(|| { - | ________________^ -LL | | let _z = y; -LL | | //~^ ERROR `y` does not live long enough -LL | | }) - | |_________^ borrowed value does not live long enough -LL | }; - | - `y` dropped here while still borrowed +LL | scoped(|| { + | -- value captured here +LL | let _z = y; + | ^ borrowed value does not live long enough +... +LL | }; + | - `y` dropped here while still borrowed LL | -LL | bad.join(); - | --- borrow later used here +LL | bad.join(); + | --- borrow later used here error: aborting due to 2 previous errors |
