rust/tests/ui/borrowck/borrowck-describe-lvalue.stderr

Ignoring revisions in .git-blame-ignore-revs. Click here to bypass and see the normal blame view.

373 lines
12 KiB
Plaintext
Raw Normal View History

2018-08-08 07:28:26 -05:00
error[E0499]: cannot borrow `x` as mutable more than once at a time
--> $DIR/borrowck-describe-lvalue.rs:254:13
2018-08-08 07:28:26 -05:00
|
LL | let y = &mut x;
| ------ first mutable borrow occurs here
LL | &mut x;
2018-08-08 07:28:26 -05:00
| ^^^^^^ second mutable borrow occurs here
LL | *y = 1;
| ------ first borrow later used here
2018-08-08 07:28:26 -05:00
error[E0499]: cannot borrow `x` as mutable more than once at a time
--> $DIR/borrowck-describe-lvalue.rs:264:20
2018-08-08 07:28:26 -05:00
|
LL | let y = &mut x;
| ------ first mutable borrow occurs here
LL | &mut x;
2018-08-08 07:28:26 -05:00
| ^^^^^^ second mutable borrow occurs here
LL | *y = 1;
| ------ first borrow later used here
2018-08-08 07:28:26 -05:00
error: captured variable cannot escape `FnMut` closure body
--> $DIR/borrowck-describe-lvalue.rs:262:16
2018-08-08 07:28:26 -05:00
|
LL | let mut x = 0;
| ----- variable defined here
LL | || {
| - inferred to be a `FnMut` closure
LL | / || {
LL | | let y = &mut x;
| | - variable captured here
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
help: consider adding 'move' keyword before the nested closure
|
LL | move || {
| ++++
2018-08-08 07:28:26 -05:00
error[E0503]: cannot use `f.x` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:37:9
2018-08-08 07:28:26 -05:00
|
LL | let x = f.x();
2023-01-14 21:06:44 -06:00
| ----- `f` is borrowed here
LL | f.x;
2018-08-08 07:28:26 -05:00
| ^^^ 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:44:9
2018-08-08 07:28:26 -05:00
|
LL | let x = g.x();
2023-01-14 21:06:44 -06:00
| ----- `g` is borrowed here
LL | g.0;
2018-08-08 07:28:26 -05:00
| ^^^ 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:51:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut h.0;
2023-01-14 21:06:44 -06:00
| -------- `h.0` is borrowed here
LL | h.0;
2018-08-08 07:28:26 -05:00
| ^^^ 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:59:20
2018-08-08 07:28:26 -05:00
|
LL | let x = e.x();
2023-01-14 21:06:44 -06:00
| ----- `e` is borrowed here
2018-09-13 16:04:09 -05:00
LL | match e {
2018-08-08 07:28:26 -05:00
LL | Baz::X(value) => value
| ^^^^^ use of borrowed `e`
LL | };
2018-08-08 07:28:26 -05:00
LL | drop(x);
| - borrow later used here
error[E0503]: cannot use `u.a` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:67:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut u.a;
2023-01-14 21:06:44 -06:00
| -------- `u.a` is borrowed here
LL | u.a;
2018-08-08 07:28:26 -05:00
| ^^^ 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:74:9
2018-08-08 07:28:26 -05:00
|
LL | let x = f.x();
2023-01-14 21:06:44 -06:00
| ----- `*f` is borrowed here
LL | f.x;
2018-08-08 07:28:26 -05:00
| ^^^ 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:81:9
2018-08-08 07:28:26 -05:00
|
LL | let x = g.x();
2023-01-14 21:06:44 -06:00
| ----- `*g` is borrowed here
LL | g.0;
2018-08-08 07:28:26 -05:00
| ^^^ 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:88:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut h.0;
2023-01-14 21:06:44 -06:00
| -------- `h.0` is borrowed here
LL | h.0;
2018-08-08 07:28:26 -05:00
| ^^^ 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:96:20
2018-08-08 07:28:26 -05:00
|
LL | let x = e.x();
2023-01-14 21:06:44 -06:00
| ----- `*e` is borrowed here
2018-09-13 16:04:09 -05:00
LL | match *e {
2018-08-08 07:28:26 -05:00
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:105:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut u.a;
2023-01-14 21:06:44 -06:00
| -------- `u.a` is borrowed here
LL | u.a;
2018-08-08 07:28:26 -05:00
| ^^^ 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:113:15
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-09-13 16:04:09 -05:00
LL | match v {
2018-08-08 07:28:26 -05:00
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:118:18
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
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:123:25
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
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:128:28
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
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:139:15
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-09-13 16:04:09 -05:00
LL | match v {
LL | &[x @ ..] => println!("{:?}", x),
| ^ use of borrowed `v`
2018-08-08 07:28:26 -05:00
...
LL | drop(x);
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:144:18
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
LL | &[_, x @ ..] => println!("{:?}", x),
| ^ use of borrowed `v`
2018-08-08 07:28:26 -05:00
...
LL | drop(x);
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:149:15
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
LL | &[x @ .., _] => println!("{:?}", x),
| ^ use of borrowed `v`
2018-08-08 07:28:26 -05:00
...
LL | drop(x);
| - borrow later used here
error[E0503]: cannot use `v[..]` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:154:18
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
...
LL | &[_, x @ .., _] => println!("{:?}", x),
| ^ use of borrowed `v`
2018-08-08 07:28:26 -05:00
...
LL | drop(x);
| - borrow later used here
error[E0503]: cannot use `e` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:166:15
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut e;
2023-01-14 21:06:44 -06:00
| ------ `e` is borrowed here
2018-09-13 16:04:09 -05:00
LL | match e {
| ^ use of borrowed `e`
2018-08-08 07:28:26 -05:00
...
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:168:18
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut e;
| ------ mutable borrow occurs here
...
2018-08-08 07:28:26 -05:00
LL | E::A(ref ax) =>
| ^^^^^^ immutable borrow occurs here
...
LL | drop(x);
| - mutable borrow later used here
2018-08-08 07:28:26 -05:00
error[E0502]: cannot borrow `e.x` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-describe-lvalue.rs:171:23
2018-08-08 07:28:26 -05:00
|
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
2018-08-08 07:28:26 -05:00
error[E0502]: cannot borrow `s.y.0` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-describe-lvalue.rs:184:22
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut s;
| ------ mutable borrow occurs here
2018-09-13 16:04:09 -05:00
LL | match s {
2018-08-08 07:28:26 -05:00
LL | S { y: (ref y0, _), .. } =>
| ^^^^^^ immutable borrow occurs here
...
LL | drop(x);
| - mutable borrow later used here
2018-08-08 07:28:26 -05:00
error[E0502]: cannot borrow `s.x.y` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-describe-lvalue.rs:190:28
2018-08-08 07:28:26 -05:00
|
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
2018-08-08 07:28:26 -05:00
error[E0503]: cannot use `*v` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:232:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
LL | v[0].y;
| ^^^^ use of borrowed `v`
...
LL | drop(x);
| - borrow later used here
2018-12-27 05:08:51 -06:00
error[E0503]: cannot use `v[_].y` because it was mutably borrowed
--> $DIR/borrowck-describe-lvalue.rs:232:9
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
2023-01-14 21:06:44 -06:00
| ------ `v` is borrowed here
2018-08-08 07:28:26 -05:00
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:243:24
2018-08-08 07:28:26 -05:00
|
LL | let x = &mut v;
| ------ mutable borrow occurs here
2018-09-13 16:04:09 -05:00
LL | match v {
2018-08-08 07:28:26 -05:00
LL | &[_, F {x: ref xf, ..}] => println!("{}", xf),
| ^^^^^^ immutable borrow occurs here
...
LL | drop(x);
| - mutable borrow later used here
2018-08-08 07:28:26 -05:00
error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-describe-lvalue.rs:206:29
2018-08-08 07:28:26 -05:00
|
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
2018-08-08 07:28:26 -05:00
error[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
--> $DIR/borrowck-describe-lvalue.rs:221:33
2018-08-08 07:28:26 -05:00
|
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
2018-08-08 07:28:26 -05:00
error[E0382]: use of moved value: `x`
--> $DIR/borrowck-describe-lvalue.rs:274:22
2018-08-08 07:28:26 -05:00
|
LL | drop(x);
| - value moved here
LL | drop(x);
2018-08-08 07:28:26 -05:00
| ^ value used here after move
|
= note: move occurs because `x` has type `Vec<i32>`, which does not implement the `Copy` trait
2018-08-08 07:28:26 -05:00
error: aborting due to 32 previous errors
2018-08-08 07:28:26 -05:00
Some errors have detailed explanations: E0382, E0499, E0502, E0503.
2018-08-08 07:28:26 -05:00
For more information about an error, try `rustc --explain E0382`.