Skip to content
Permalink
Browse files

Regression test for issue 42574.

  • Loading branch information...
pnkfelix committed Jul 9, 2019
1 parent 909f5a0 commit 4becbf3a7936d25de06265d934378996eea2f857
@@ -0,0 +1,13 @@
// This test illustrates a case where full NLL (enabled by the feature
// switch below) produces superior diagnostics to the NLL-migrate
// mode.

#![feature(nll)]

fn doit(data: &'static mut ()) {
|| doit(data);
//~^ ERROR lifetime may not live long enough
//~| ERROR `data` does not live long enough
}

fn main() { }
@@ -0,0 +1,26 @@
error: lifetime may not live long enough
--> $DIR/issue-42574-diagnostic-in-nested-closure.rs:8:8
|
LL | || doit(data);
| -- ^^^^^^^^^^ argument requires that `'1` must outlive `'static`
| |
| lifetime `'1` represents this closure's body
|
= note: closure implements `FnMut`, so references to captured variables can't escape the closure

error[E0597]: `data` does not live long enough
--> $DIR/issue-42574-diagnostic-in-nested-closure.rs:8:13
|
LL | || doit(data);
| -- -----^^^^-
| | | |
| | | borrowed value does not live long enough
| | argument requires that `data` is borrowed for `'static`
| value captured here
...
LL | }
| - `data` dropped here while still borrowed

error: aborting due to 2 previous errors

For more information about this error, try `rustc --explain E0597`.

0 comments on commit 4becbf3

Please sign in to comment.
You can’t perform that action at this time.