| error[E0499]: cannot borrow `x` as mutable more than once at a time |
| --> $DIR/borrowck-describe-lvalue.rs:258:13 |
| | |
| LL | let y = &mut x; |
| | ------ first mutable borrow occurs here |
| LL | &mut x; |
| | ^^^^^^ second mutable borrow occurs here |
| LL | *y = 1; |
| | ------ first borrow later used here |
| |
| error[E0499]: cannot borrow `x` as mutable more than once at a time |
| --> $DIR/borrowck-describe-lvalue.rs:268:20 |
| | |
| LL | let y = &mut x; |
| | ------ first mutable borrow occurs here |
| LL | &mut x; |
| | ^^^^^^ second mutable borrow occurs here |
| LL | *y = 1; |
| | ------ first borrow later used here |
| |
| error: captured variable cannot escape `FnMut` closure body |
| --> $DIR/borrowck-describe-lvalue.rs:266:16 |
| | |
| LL | || { |
| | - inferred to be a `FnMut` closure |
| LL | / || { |
| LL | | let y = &mut x; |
| LL | | &mut x; |
| LL | | *y = 1; |
| LL | | drop(y); |
| LL | | } |
| | |_________________^ returns a closure that contains a reference to a captured variable, which then escapes the closure body |
| | |
| = 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 |
| |
| error[E0503]: cannot use `f.x` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:41:9 |
| | |
| LL | let x = f.x(); |
| | - borrow of `f` occurs here |
| LL | f.x; |
| | ^^^ use of borrowed `f` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `g.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:48:9 |
| | |
| LL | let x = g.x(); |
| | - borrow of `g` occurs here |
| LL | g.0; |
| | ^^^ use of borrowed `g` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `h.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:55:9 |
| | |
| LL | let x = &mut h.0; |
| | -------- borrow of `h.0` occurs here |
| LL | h.0; |
| | ^^^ use of borrowed `h.0` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `e.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:63:20 |
| | |
| LL | let x = e.x(); |
| | - borrow of `e` occurs here |
| LL | match e { |
| LL | Baz::X(value) => value |
| | ^^^^^ use of borrowed `e` |
| LL | }; |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `u.a` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:71:9 |
| | |
| LL | let x = &mut u.a; |
| | -------- borrow of `u.a` occurs here |
| LL | u.a; |
| | ^^^ use of borrowed `u.a` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `f.x` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:78:9 |
| | |
| LL | let x = f.x(); |
| | - borrow of `*f` occurs here |
| LL | f.x; |
| | ^^^ use of borrowed `*f` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `g.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:85:9 |
| | |
| LL | let x = g.x(); |
| | - borrow of `*g` occurs here |
| LL | g.0; |
| | ^^^ use of borrowed `*g` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `h.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:92:9 |
| | |
| LL | let x = &mut h.0; |
| | -------- borrow of `h.0` occurs here |
| LL | h.0; |
| | ^^^ use of borrowed `h.0` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `e.0` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:100:20 |
| | |
| LL | let x = e.x(); |
| | - borrow of `*e` occurs here |
| LL | match *e { |
| LL | Baz::X(value) => value |
| | ^^^^^ use of borrowed `*e` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `u.a` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:109:9 |
| | |
| LL | let x = &mut u.a; |
| | -------- borrow of `u.a` occurs here |
| LL | u.a; |
| | ^^^ use of borrowed `u.a` |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:117:15 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| LL | match v { |
| LL | &[x, _, .., _, _] => println!("{}", x), |
| | ^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:122:18 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[_, x, .., _, _] => println!("{}", x), |
| | ^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:127:25 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[_, _, .., x, _] => println!("{}", x), |
| | ^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:132:28 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[_, _, .., _, x] => println!("{}", x), |
| | ^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:143:15 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| LL | match v { |
| LL | &[x @ ..] => println!("{:?}", x), |
| | ^^^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:148:18 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[_, x @ ..] => println!("{:?}", x), |
| | ^^^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:153:15 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[x @ .., _] => println!("{:?}", x), |
| | ^^^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[..]` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:158:18 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| ... |
| LL | &[_, x @ .., _] => println!("{:?}", x), |
| | ^^^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `e` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:171:13 |
| | |
| LL | let x = &mut e; |
| | ------ borrow of `e` occurs here |
| LL | match e { |
| LL | E::A(ref ax) => |
| | ^^^^^^^^^^^^ use of borrowed `e` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0502]: cannot borrow `e.0` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:171:18 |
| | |
| LL | let x = &mut e; |
| | ------ mutable borrow occurs here |
| LL | match e { |
| LL | E::A(ref ax) => |
| | ^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0502]: cannot borrow `e.x` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:175:23 |
| | |
| LL | let x = &mut e; |
| | ------ mutable borrow occurs here |
| ... |
| LL | E::B { x: ref bx } => |
| | ^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0502]: cannot borrow `s.y.0` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:188:22 |
| | |
| LL | let x = &mut s; |
| | ------ mutable borrow occurs here |
| LL | match s { |
| LL | S { y: (ref y0, _), .. } => |
| | ^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0502]: cannot borrow `s.x.y` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:194:28 |
| | |
| LL | let x = &mut s; |
| | ------ mutable borrow occurs here |
| ... |
| LL | S { x: F { y: ref x0, .. }, .. } => |
| | ^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0503]: cannot use `*v` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:236:9 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| LL | v[0].y; |
| | ^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0503]: cannot use `v[_].y` because it was mutably borrowed |
| --> $DIR/borrowck-describe-lvalue.rs:236:9 |
| | |
| LL | let x = &mut v; |
| | ------ borrow of `v` occurs here |
| LL | v[0].y; |
| | ^^^^^^ use of borrowed `v` |
| ... |
| LL | drop(x); |
| | - borrow later used here |
| |
| error[E0502]: cannot borrow `v[..].x` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:247:24 |
| | |
| LL | let x = &mut v; |
| | ------ mutable borrow occurs here |
| LL | match v { |
| LL | &[_, F {x: ref xf, ..}] => println!("{}", xf), |
| | ^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:210:29 |
| | |
| LL | let x = &mut block; |
| | ---------- mutable borrow occurs here |
| LL | let p: &'a u8 = &*block.current; |
| | ^^^^^^^^^^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable |
| --> $DIR/borrowck-describe-lvalue.rs:225:33 |
| | |
| LL | let x = &mut block; |
| | ---------- mutable borrow occurs here |
| LL | let p : *const u8 = &*(*block).current; |
| | ^^^^^^^^^^^^^^^^^^ immutable borrow occurs here |
| ... |
| LL | drop(x); |
| | - mutable borrow later used here |
| |
| error[E0382]: use of moved value: `x` |
| --> $DIR/borrowck-describe-lvalue.rs:278:22 |
| | |
| LL | drop(x); |
| | - value moved here |
| LL | drop(x); |
| | ^ value used here after move |
| | |
| = note: move occurs because `x` has type `std::vec::Vec<i32>`, which does not implement the `Copy` trait |
| |
| error: aborting due to 32 previous errors |
| |
| Some errors have detailed explanations: E0382, E0499, E0502, E0503. |
| For more information about an error, try `rustc --explain E0382`. |