diff options
Diffstat (limited to 'tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr')
-rw-r--r-- | tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr | 84 |
1 files changed, 84 insertions, 0 deletions
diff --git a/tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr new file mode 100644 index 000000000..087f2ac79 --- /dev/null +++ b/tests/ui/borrowck/borrowck-overloaded-index-autoderef.stderr @@ -0,0 +1,84 @@ +error[E0502]: cannot borrow `*f` as immutable because it is also borrowed as mutable + --> $DIR/borrowck-overloaded-index-autoderef.rs:37:14 + | +LL | let p = &mut f[&s]; + | - mutable borrow occurs here +LL | let q = &f[&s]; + | ^ immutable borrow occurs here +LL | p.use_mut(); + | ----------- mutable borrow later used here + +error[E0499]: cannot borrow `*f` as mutable more than once at a time + --> $DIR/borrowck-overloaded-index-autoderef.rs:43:18 + | +LL | let p = &mut f[&s]; + | - first mutable borrow occurs here +LL | let q = &mut f[&s]; + | ^ second mutable borrow occurs here +LL | p.use_mut(); + | ----------- first borrow later used here + +error[E0499]: cannot borrow `f.foo` as mutable more than once at a time + --> $DIR/borrowck-overloaded-index-autoderef.rs:53:18 + | +LL | let p = &mut f.foo[&s]; + | ----- first mutable borrow occurs here +LL | let q = &mut f.foo[&s]; + | ^^^^^ second mutable borrow occurs here +LL | p.use_mut(); + | ----------- first borrow later used here + +error[E0502]: cannot borrow `f.foo` as mutable because it is also borrowed as immutable + --> $DIR/borrowck-overloaded-index-autoderef.rs:65:18 + | +LL | let p = &f.foo[&s]; + | ----- immutable borrow occurs here +LL | let q = &mut f.foo[&s]; + | ^^^^^ mutable borrow occurs here +LL | p.use_ref(); + | ----------- immutable borrow later used here + +error[E0506]: cannot assign to `f.foo` because it is borrowed + --> $DIR/borrowck-overloaded-index-autoderef.rs:71:5 + | +LL | let p = &f.foo[&s]; + | ----- borrow of `f.foo` occurs here +LL | f.foo = g; + | ^^^^^^^^^ assignment to borrowed `f.foo` occurs here +LL | p.use_ref(); + | ----------- borrow later used here + +error[E0506]: cannot assign to `*f` because it is borrowed + --> $DIR/borrowck-overloaded-index-autoderef.rs:77:5 + | +LL | let p = &f.foo[&s]; + | ----- borrow of `*f` occurs here +LL | *f = g; + | ^^^^^^ assignment to borrowed `*f` occurs here +LL | p.use_ref(); + | ----------- borrow later used here + +error[E0506]: cannot assign to `f.foo` because it is borrowed + --> $DIR/borrowck-overloaded-index-autoderef.rs:83:5 + | +LL | let p = &mut f.foo[&s]; + | ----- borrow of `f.foo` occurs here +LL | f.foo = g; + | ^^^^^^^^^ assignment to borrowed `f.foo` occurs here +LL | p.use_mut(); + | ----------- borrow later used here + +error[E0506]: cannot assign to `*f` because it is borrowed + --> $DIR/borrowck-overloaded-index-autoderef.rs:89:5 + | +LL | let p = &mut f.foo[&s]; + | ----- borrow of `*f` occurs here +LL | *f = g; + | ^^^^^^ assignment to borrowed `*f` occurs here +LL | p.use_mut(); + | ----------- borrow later used here + +error: aborting due to 8 previous errors + +Some errors have detailed explanations: E0499, E0502, E0506. +For more information about an error, try `rustc --explain E0499`. |