| error[E0597]: `factorial` does not live long enough |
| --> $DIR/unboxed-closures-failed-recursive-fn-1.rs:25:17 |
| | |
| LL | let f = |x: u32| -> u32 { |
| | --------------- capture occurs here |
| LL | let g = factorial.as_ref().unwrap(); |
| | ^^^^^^^^^ borrowed value does not live long enough |
| ... |
| LL | } |
| | - borrowed value dropped before borrower |
| | |
| = note: values in a scope are dropped in the opposite order they are created |
| |
| error[E0373]: closure may outlive the current function, but it borrows `factorial`, which is owned by the current function |
| --> $DIR/unboxed-closures-failed-recursive-fn-1.rs:36:13 |
| | |
| LL | let f = |x: u32| -> u32 { |
| | ^^^^^^^^^^^^^^^ may outlive borrowed value `factorial` |
| LL | //~^ ERROR closure may outlive the current function, but it borrows `factorial` |
| LL | let g = factorial.as_ref().unwrap(); |
| | --------- `factorial` is borrowed here |
| help: to force the closure to take ownership of `factorial` (and any other referenced variables), use the `move` keyword |
| | |
| LL | let f = move |x: u32| -> u32 { |
| | ^^^^^^^^^^^^^^^^^^^^ |
| |
| error: aborting due to 2 previous errors |
| |
| Some errors occurred: E0373, E0597. |
| For more information about an error, try `rustc --explain E0373`. |