| error: captured variable cannot escape `FnMut` closure body |
| --> $DIR/issue-95079-missing-move-in-nested-closure.rs:3:29 |
| | |
| LL | fn foo1(s: &str) -> impl Iterator<Item = String> + '_ { |
| | - variable defined here |
| LL | None.into_iter() |
| LL | .flat_map(move |()| s.chars().map(|c| format!("{}{}", c, s))) |
| | - -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ |
| | | | |
| | | returns a reference to a captured variable which escapes the closure body |
| | | variable captured here |
| | inferred to be a `FnMut` closure |
| | |
| = 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 |
| help: consider adding 'move' keyword before the nested closure |
| | |
| LL | .flat_map(move |()| s.chars().map(move |c| format!("{}{}", c, s))) |
| | ++++ |
| |
| error: lifetime may not live long enough |
| --> $DIR/issue-95079-missing-move-in-nested-closure.rs:9:15 |
| | |
| LL | move |()| s.chars().map(|c| format!("{}{}", c, s)) |
| | --------- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ returning this value requires that `'1` must outlive `'2` |
| | | | |
| | | return type of closure `Map<Chars<'_>, [closure@$DIR/issue-95079-missing-move-in-nested-closure.rs:9:29: 9:32]>` contains a lifetime `'2` |
| | lifetime `'1` represents this closure's body |
| | |
| = note: closure implements `Fn`, so references to captured variables can't escape the closure |
| help: consider adding 'move' keyword before the nested closure |
| | |
| LL | move |()| s.chars().map(move |c| format!("{}{}", c, s)) |
| | ++++ |
| |
| error: aborting due to 2 previous errors |
| |