| error[E0596]: cannot borrow `foo` as mutable, as it is not declared as mutable |
| --> $DIR/borrow-unpin.rs:38:17 |
| | |
| LL | foo_pin_mut(&pin mut foo); |
| | ^^^^^^^^^^^^ cannot borrow as mutable |
| | |
| help: consider changing this to be mutable |
| | |
| LL | let mut foo = Foo::default(); |
| | +++ |
| |
| error[E0596]: cannot borrow `foo` as mutable, as it is not declared as mutable |
| --> $DIR/borrow-unpin.rs:42:13 |
| | |
| LL | let x = &pin mut foo; |
| | ^^^^^^^^^^^^ cannot borrow as mutable |
| | |
| help: consider changing this to be mutable |
| | |
| LL | let mut foo = Foo::default(); |
| | +++ |
| |
| error[E0505]: cannot move out of `foo` because it is borrowed |
| --> $DIR/borrow-unpin.rs:43:14 |
| | |
| LL | let foo = Foo::default(); |
| | --- binding `foo` declared here |
| LL | let x = &pin mut foo; |
| | ------------ borrow of `foo` occurs here |
| LL | foo_move(foo); |
| | ^^^ move out of `foo` occurs here |
| LL | |
| LL | foo_pin_mut(x); // |
| | - borrow later used here |
| | |
| note: if `Foo` implemented `Clone`, you could clone the value |
| --> $DIR/borrow-unpin.rs:20:1 |
| | |
| LL | struct Foo; |
| | ^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let x = &pin mut foo; |
| | --- you could clone this value |
| |
| error[E0505]: cannot move out of `foo` because it is borrowed |
| --> $DIR/borrow-unpin.rs:56:14 |
| | |
| LL | let mut foo = Foo::default(); |
| | ------- binding `foo` declared here |
| LL | let x = &pin mut foo; // ok |
| | ------------ borrow of `foo` occurs here |
| LL | foo_move(foo); |
| | ^^^ move out of `foo` occurs here |
| LL | |
| LL | foo_pin_mut(x); // |
| | - borrow later used here |
| | |
| note: if `Foo` implemented `Clone`, you could clone the value |
| --> $DIR/borrow-unpin.rs:20:1 |
| | |
| LL | struct Foo; |
| | ^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let x = &pin mut foo; // ok |
| | --- you could clone this value |
| |
| error[E0505]: cannot move out of `foo` because it is borrowed |
| --> $DIR/borrow-unpin.rs:68:14 |
| | |
| LL | let foo = Foo::default(); |
| | --- binding `foo` declared here |
| LL | let x = &pin const foo; // ok |
| | -------------- borrow of `foo` occurs here |
| LL | foo_move(foo); |
| | ^^^ move out of `foo` occurs here |
| LL | |
| LL | foo_pin_ref(x); |
| | - borrow later used here |
| | |
| note: if `Foo` implemented `Clone`, you could clone the value |
| --> $DIR/borrow-unpin.rs:20:1 |
| | |
| LL | struct Foo; |
| | ^^^^^^^^^^ consider implementing `Clone` for this type |
| ... |
| LL | let x = &pin const foo; // ok |
| | --- you could clone this value |
| |
| error[E0502]: cannot borrow `foo` as immutable because it is also borrowed as mutable |
| --> $DIR/borrow-unpin.rs:80:13 |
| | |
| LL | let x = &pin mut foo; // ok |
| | ------------ mutable borrow occurs here |
| LL | foo_ref(&foo); |
| | ^^^^ immutable borrow occurs here |
| LL | |
| LL | foo_pin_mut(x); |
| | - mutable borrow later used here |
| |
| error[E0499]: cannot borrow `foo` as mutable more than once at a time |
| --> $DIR/borrow-unpin.rs:103:17 |
| | |
| LL | let x = &pin mut foo; // ok |
| | ------------ first mutable borrow occurs here |
| LL | foo_pin_mut(&pin mut foo); |
| | ^^^^^^^^^^^^ second mutable borrow occurs here |
| LL | |
| LL | foo_pin_mut(x); |
| | - first borrow later used here |
| |
| error[E0502]: cannot borrow `foo` as mutable because it is also borrowed as immutable |
| --> $DIR/borrow-unpin.rs:115:17 |
| | |
| LL | let x = &pin const foo; // ok |
| | -------------- immutable borrow occurs here |
| LL | foo_pin_mut(&pin mut foo); |
| | ^^^^^^^^^^^^ mutable borrow occurs here |
| LL | |
| LL | foo_pin_ref(x); |
| | - immutable borrow later used here |
| |
| error[E0502]: cannot borrow `foo` as immutable because it is also borrowed as mutable |
| --> $DIR/borrow-unpin.rs:127:17 |
| | |
| LL | let x = &pin mut foo; // ok |
| | ------------ mutable borrow occurs here |
| LL | foo_pin_ref(&pin const foo); |
| | ^^^^^^^^^^^^^^ immutable borrow occurs here |
| LL | |
| LL | foo_pin_mut(x); |
| | - mutable borrow later used here |
| |
| error: aborting due to 9 previous errors |
| |
| Some errors have detailed explanations: E0499, E0502, E0505, E0596. |
| For more information about an error, try `rustc --explain E0499`. |