diff options
| author | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-09-06 15:52:48 +0200 |
|---|---|---|
| committer | Mazdak Farrokhzad <twingoow@gmail.com> | 2019-09-26 06:44:57 +0200 |
| commit | 487f8ab732beebb44c1d6d3530d49a9af1c31c4b (patch) | |
| tree | 8e035a35da13b1076616799629fa875b0521fa35 | |
| parent | 6ec9b3a0b6510fcac75bd60e5a317de7f29310ef (diff) | |
| download | rust-487f8ab732beebb44c1d6d3530d49a9af1c31c4b.tar.gz rust-487f8ab732beebb44c1d6d3530d49a9af1c31c4b.zip | |
add test for #53432.
| -rw-r--r-- | src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs | 7 | ||||
| -rw-r--r-- | src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr | 15 |
2 files changed, 22 insertions, 0 deletions
diff --git a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs b/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs new file mode 100644 index 00000000000..f1fd1b507c7 --- /dev/null +++ b/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.rs @@ -0,0 +1,7 @@ +fn main() { + let f = move || {}; + let _action = move || { + || f() // The `nested` closure + //~^ ERROR lifetime may not live long enough + }; +} diff --git a/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr b/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr new file mode 100644 index 00000000000..3781691ff41 --- /dev/null +++ b/src/test/ui/borrowck/issue-53432-nested-closure-outlives-borrowed-value.stderr @@ -0,0 +1,15 @@ +error: lifetime may not live long enough + --> $DIR/issue-53432-nested-closure-outlives-borrowed-value.rs:4:9 + | +LL | let _action = move || { + | ------- + | | | + | | return type of closure is [closure@$DIR/issue-53432-nested-closure-outlives-borrowed-value.rs:4:9: 4:15 f:&'2 [closure@$DIR/issue-53432-nested-closure-outlives-borrowed-value.rs:2:13: 2:23]] + | lifetime `'1` represents this closure's body +LL | || f() // The `nested` closure + | ^^^^^^ returning this value requires that `'1` must outlive `'2` + | + = note: closure implements `Fn`, so references to captured variables can't escape the closure + +error: aborting due to previous error + |
