Added multiple parameter closure test.

New test has multiple parameters in a closure with longer names in order
to clarify the issues relating to odd spans.
This commit is contained in:
David Wood 2018-09-17 10:48:44 +02:00
parent 876774bf71
commit 97bbcabef1
No known key found for this signature in database
GPG Key ID: 01760B4F9F53F154
2 changed files with 20 additions and 2 deletions

View File

@ -14,9 +14,17 @@
fn foo(_: impl FnOnce(&u32) -> &u32) {
}
fn baz(_: impl FnOnce(&u32, u32) -> &u32) {
}
fn bar() {
let x = 22;
foo(|a| &x)
}
fn foobar() {
let y = 22;
baz(|first, second| &y)
}
fn main() { }

View File

@ -1,5 +1,5 @@
error[E0597]: `x` does not live long enough
--> $DIR/issue-52534.rs:19:14
--> $DIR/issue-52534.rs:22:14
|
LL | foo(|a| &x)
| - ^ `x` would have to be valid for `'0`
@ -8,6 +8,16 @@ LL | foo(|a| &x)
LL | }
| - ...but `x` is only valid for the duration of the `bar` function, so it is dropped here while still borrowed
error: aborting due to previous error
error[E0597]: `y` does not live long enough
--> $DIR/issue-52534.rs:27:26
|
LL | baz(|first, second| &y)
| - ^ `y` would have to be valid for `'0`
| |
| has type `&'0 u32`
LL | }
| - ...but `y` is only valid for the duration of the `foobar` function, so it is dropped here while still borrowed
error: aborting due to 2 previous errors
For more information about this error, try `rustc --explain E0597`.