2019-01-27 11:03:21 +00:00
|
|
|
error: captured variable cannot escape `FnMut` closure body
|
2019-09-06 15:47:50 +02:00
|
|
|
--> $DIR/issue-40510-3.rs:7:9
|
2018-07-15 14:11:54 -07:00
|
|
|
|
|
2020-05-23 21:40:55 -04:00
|
|
|
LL | let mut x: Vec<()> = Vec::new();
|
|
|
|
| ----- variable defined here
|
2022-06-08 21:07:59 +03:00
|
|
|
LL |
|
2018-08-05 14:33:38 +01:00
|
|
|
LL | || {
|
2018-10-04 01:50:23 +02:00
|
|
|
| - inferred to be a `FnMut` closure
|
2018-08-05 14:33:38 +01:00
|
|
|
LL | / || {
|
|
|
|
LL | | x.push(())
|
2020-05-23 21:40:55 -04:00
|
|
|
| | - variable captured here
|
2018-08-05 14:33:38 +01:00
|
|
|
LL | | }
|
2018-10-04 21:48:50 +02:00
|
|
|
| |_________^ returns a closure that contains a reference to a captured variable, which then escapes the closure body
|
2018-08-05 14:33:38 +01:00
|
|
|
|
|
2018-10-04 01:50:23 +02:00
|
|
|
= note: `FnMut` closures only have access to their captured variables while they are executing...
|
|
|
|
= note: ...therefore, they cannot allow references to captured variables to escape
|
2022-07-22 09:53:39 -07:00
|
|
|
help: consider adding 'move' keyword before the nested closure
|
|
|
|
|
|
|
|
|
LL | move || {
|
|
|
|
| ++++
|
2019-01-27 11:03:21 +00:00
|
|
|
|
2023-11-21 15:44:16 +00:00
|
|
|
error: aborting due to 1 previous error
|
2018-10-17 00:57:32 +02:00
|
|
|
|