Bless output of test unboxed-closures/unboxed-closures-failed-recursive-fn-1.rs for Polonius
This commit is contained in:
parent
9e0fb6fad2
commit
823ab42e66
1 changed files with 60 additions and 0 deletions
|
@ -0,0 +1,60 @@
|
|||
error[E0597]: `factorial` does not live long enough
|
||||
--> $DIR/unboxed-closures-failed-recursive-fn-1.rs:15:17
|
||||
|
|
||||
LL | let f = |x: u32| -> u32 {
|
||||
| --------------- value captured here
|
||||
LL | let g = factorial.as_ref().unwrap();
|
||||
| ^^^^^^^^^ borrowed value does not live long enough
|
||||
...
|
||||
LL | }
|
||||
| -
|
||||
| |
|
||||
| `factorial` dropped here while still borrowed
|
||||
| borrow might be used here, when `factorial` is dropped and runs the destructor for type `std::option::Option<std::boxed::Box<dyn std::ops::Fn(u32) -> u32>>`
|
||||
|
||||
error[E0506]: cannot assign to `factorial` because it is borrowed
|
||||
--> $DIR/unboxed-closures-failed-recursive-fn-1.rs:20:5
|
||||
|
|
||||
LL | let f = |x: u32| -> u32 {
|
||||
| --------------- borrow of `factorial` occurs here
|
||||
LL | let g = factorial.as_ref().unwrap();
|
||||
| --------- borrow occurs due to use in closure
|
||||
...
|
||||
LL | factorial = Some(Box::new(f));
|
||||
| ^^^^^^^^^
|
||||
| |
|
||||
| assignment to borrowed `factorial` occurs here
|
||||
| borrow later used here
|
||||
|
||||
error[E0597]: `factorial` does not live long enough
|
||||
--> $DIR/unboxed-closures-failed-recursive-fn-1.rs:28:17
|
||||
|
|
||||
LL | let f = |x: u32| -> u32 {
|
||||
| --------------- value captured here
|
||||
LL | let g = factorial.as_ref().unwrap();
|
||||
| ^^^^^^^^^ borrowed value does not live long enough
|
||||
...
|
||||
LL | }
|
||||
| -
|
||||
| |
|
||||
| `factorial` dropped here while still borrowed
|
||||
| borrow might be used here, when `factorial` is dropped and runs the destructor for type `std::option::Option<std::boxed::Box<dyn std::ops::Fn(u32) -> u32>>`
|
||||
|
||||
error[E0506]: cannot assign to `factorial` because it is borrowed
|
||||
--> $DIR/unboxed-closures-failed-recursive-fn-1.rs:33:5
|
||||
|
|
||||
LL | let f = |x: u32| -> u32 {
|
||||
| --------------- borrow of `factorial` occurs here
|
||||
LL | let g = factorial.as_ref().unwrap();
|
||||
| --------- borrow occurs due to use in closure
|
||||
...
|
||||
LL | factorial = Some(Box::new(f));
|
||||
| ^^^^^^^^^
|
||||
| |
|
||||
| assignment to borrowed `factorial` occurs here
|
||||
| borrow later used here
|
||||
|
||||
error: aborting due to 4 previous errors
|
||||
|
||||
Some errors have detailed explanations: E0506, E0597.
|
||||
For more information about an error, try `rustc --explain E0506`.
|
Loading…
Add table
Add a link
Reference in a new issue