Rollup merge of #62520 - pnkfelix:add-test-for-42574, r=alexcrichton
Regression test for issue 42574. Cc #42574. I'm not going to say this *closes* that issue yet, for two reasons: 1. I am still confused about some aspects of the behavior we are observing that bug 2. The "fix" to the diagnostic relies on full NLL (`#![feature(nll)]`); migration mode still has a subpar diagnostic.
This commit is contained in:
commit
e6f68a93b3
2 changed files with 39 additions and 0 deletions
13
src/test/ui/nll/issue-42574-diagnostic-in-nested-closure.rs
Normal file
13
src/test/ui/nll/issue-42574-diagnostic-in-nested-closure.rs
Normal file
|
|
@ -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`.
|
||||
Loading…
Add table
Add a link
Reference in a new issue