diff options
| author | David Wood <david@davidtw.co> | 2018-09-17 10:48:44 +0200 |
|---|---|---|
| committer | David Wood <david@davidtw.co> | 2018-09-23 14:18:34 +0200 |
| commit | 97bbcabef15309ba9ab9bc9d365d4524ce26fc09 (patch) | |
| tree | cdf3386d9c1626992fb91d90d257a17d4e9cfec1 /src | |
| parent | 876774bf71765cd7a1f2a8dfd775392bb162aae8 (diff) | |
| download | rust-97bbcabef15309ba9ab9bc9d365d4524ce26fc09.tar.gz rust-97bbcabef15309ba9ab9bc9d365d4524ce26fc09.zip | |
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.
Diffstat (limited to 'src')
| -rw-r--r-- | src/test/ui/nll/issue-52534.rs | 8 | ||||
| -rw-r--r-- | src/test/ui/nll/issue-52534.stderr | 14 |
2 files changed, 20 insertions, 2 deletions
diff --git a/src/test/ui/nll/issue-52534.rs b/src/test/ui/nll/issue-52534.rs index c75af27f83d..273c9b3c802 100644 --- a/src/test/ui/nll/issue-52534.rs +++ b/src/test/ui/nll/issue-52534.rs @@ -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() { } diff --git a/src/test/ui/nll/issue-52534.stderr b/src/test/ui/nll/issue-52534.stderr index 032aa218d4a..873f17d8deb 100644 --- a/src/test/ui/nll/issue-52534.stderr +++ b/src/test/ui/nll/issue-52534.stderr @@ -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`. |
