| error[E0515]: cannot return reference to local variable `x` |
| --> $DIR/polonius-smoke-test.rs:6:5 |
| | |
| LL | &x |
| | ^^ returns a reference to data owned by the current function |
| |
| error[E0503]: cannot use `x` because it was mutably borrowed |
| --> $DIR/polonius-smoke-test.rs:12:13 |
| | |
| LL | let y = &mut x; |
| | ------ `x` is borrowed here |
| LL | let z = x; |
| | ^ use of borrowed `x` |
| LL | let w = y; |
| | - borrow later used here |
| |
| error[E0505]: cannot move out of `x` because it is borrowed |
| --> $DIR/polonius-smoke-test.rs:18:13 |
| | |
| LL | pub fn use_while_mut_fr(x: &mut i32) -> &mut i32 { |
| | - - let's call the lifetime of this reference `'1` |
| | | |
| | binding `x` declared here |
| LL | let y = &mut *x; |
| | ------- borrow of `*x` occurs here |
| LL | let z = x; |
| | ^ move out of `x` occurs here |
| LL | y |
| | - returning this value requires that `*x` is borrowed for `'1` |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL - let y = &mut *x; |
| LL + let y = &mut x.clone(); |
| | |
| |
| error[E0505]: cannot move out of `s` because it is borrowed |
| --> $DIR/polonius-smoke-test.rs:42:5 |
| | |
| LL | let s = &mut 1; |
| | - binding `s` declared here |
| LL | let r = &mut *s; |
| | ------- borrow of `*s` occurs here |
| LL | let tmp = foo(&r); |
| LL | s; |
| | ^ move out of `s` occurs here |
| LL | tmp; |
| | --- borrow later used here |
| | |
| help: consider cloning the value if the performance cost is acceptable |
| | |
| LL - let r = &mut *s; |
| LL + let r = &mut s.clone(); |
| | |
| |
| error: aborting due to 4 previous errors |
| |
| Some errors have detailed explanations: E0503, E0505, E0515. |
| For more information about an error, try `rustc --explain E0503`. |