diff options
Diffstat (limited to 'tests/ui/borrowck/borrowck-field-sensitivity.stderr')
-rw-r--r-- | tests/ui/borrowck/borrowck-field-sensitivity.stderr | 144 |
1 files changed, 144 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-field-sensitivity.stderr b/tests/ui/borrowck/borrowck-field-sensitivity.stderr new file mode 100644 index 000000000..e009f5913 --- /dev/null +++ b/tests/ui/borrowck/borrowck-field-sensitivity.stderr @@ -0,0 +1,144 @@ +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:8:10 + | +LL | drop(x.b); + | --- value moved here +LL | drop(*x.b); + | ^^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:14:10 + | +LL | let y = A { a: 3, .. x }; + | ---------------- value moved here +LL | drop(*x.b); + | ^^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: borrow of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:20:13 + | +LL | drop(x.b); + | --- value moved here +LL | let p = &x.b; + | ^^^^ value borrowed here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: borrow of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:27:13 + | +LL | let _y = A { a: 3, .. x }; + | ---------------- value moved here +LL | let p = &x.b; + | ^^^^ value borrowed here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0505]: cannot move out of `x.b` because it is borrowed + --> $DIR/borrowck-field-sensitivity.rs:34:10 + | +LL | let p = &x.b; + | ---- borrow of `x.b` occurs here +LL | drop(x.b); + | ^^^ move out of `x.b` occurs here +LL | drop(**p); + | --- borrow later used here + +error[E0505]: cannot move out of `x.b` because it is borrowed + --> $DIR/borrowck-field-sensitivity.rs:41:14 + | +LL | let p = &x.b; + | ---- borrow of `x.b` occurs here +LL | let _y = A { a: 3, .. x }; + | ^^^^^^^^^^^^^^^^ move out of `x.b` occurs here +LL | drop(**p); + | --- borrow later used here + +error[E0499]: cannot borrow `x.a` as mutable more than once at a time + --> $DIR/borrowck-field-sensitivity.rs:48:13 + | +LL | let p = &mut x.a; + | -------- first mutable borrow occurs here +LL | let q = &mut x.a; + | ^^^^^^^^ second mutable borrow occurs here +LL | drop(*p); + | -- first borrow later used here + +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:56:10 + | +LL | drop(x.b); + | --- value moved here +LL | drop(x.b); + | ^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:62:10 + | +LL | let _y = A { a: 3, .. x }; + | ---------------- value moved here +LL | drop(x.b); + | ^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:68:14 + | +LL | drop(x.b); + | --- value moved here +LL | let _z = A { a: 3, .. x }; + | ^^^^^^^^^^^^^^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0382]: use of moved value: `x.b` + --> $DIR/borrowck-field-sensitivity.rs:74:14 + | +LL | let _y = A { a: 3, .. x }; + | ---------------- value moved here +LL | let _z = A { a: 4, .. x }; + | ^^^^^^^^^^^^^^^^ value used here after move + | + = note: move occurs because `x.b` has type `Box<isize>`, which does not implement the `Copy` trait + +error[E0381]: partially assigned binding `x` isn't fully initialized + --> $DIR/borrowck-field-sensitivity.rs:81:5 + | +LL | let mut x: A; + | ----- binding declared here but left uninitialized +LL | x.a = 1; + | ^^^^^^^ `x` partially assigned here but it isn't fully initialized + | + = help: partial initialization isn't supported, fully initialize the binding with a default value and mutate it, or use `std::mem::MaybeUninit` + +error[E0381]: partially assigned binding `x` isn't fully initialized + --> $DIR/borrowck-field-sensitivity.rs:87:5 + | +LL | let mut x: A; + | ----- binding declared here but left uninitialized +LL | x.a = 1; + | ^^^^^^^ `x` partially assigned here but it isn't fully initialized + | + = help: partial initialization isn't supported, fully initialize the binding with a default value and mutate it, or use `std::mem::MaybeUninit` + +error[E0381]: partially assigned binding `x` isn't fully initialized + --> $DIR/borrowck-field-sensitivity.rs:94:5 + | +LL | let mut x: A; + | ----- binding declared here but left uninitialized +LL | x.b = Box::new(1); + | ^^^ `x` partially assigned here but it isn't fully initialized + | + = help: partial initialization isn't supported, fully initialize the binding with a default value and mutate it, or use `std::mem::MaybeUninit` + +error: aborting due to 14 previous errors + +Some errors have detailed explanations: E0381, E0382, E0499, E0505. +For more information about an error, try `rustc --explain E0381`. |