Skip to content

Commit

Permalink
Regression test for issue 42574.
Browse files Browse the repository at this point in the history
  • Loading branch information
pnkfelix committed Jul 9, 2019
1 parent 909f5a0 commit 4becbf3
Show file tree
Hide file tree
Showing 2 changed files with 39 additions and 0 deletions.
13 changes: 13 additions & 0 deletions src/test/ui/nll/issue-42574-diagnostic-in-nested-closure.rs
Original file line number Diff line number Diff line change
@@ -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() { }
26 changes: 26 additions & 0 deletions src/test/ui/nll/issue-42574-diagnostic-in-nested-closure.stderr
Original file line number Diff line number Diff line change
@@ -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.