diff options
Diffstat (limited to 'tests/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr')
-rw-r--r-- | tests/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/tests/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr b/tests/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr new file mode 100644 index 000000000..4759b4589 --- /dev/null +++ b/tests/ui/moves/moves-based-on-type-no-recursive-stack-closure.stderr @@ -0,0 +1,28 @@ +error[E0499]: cannot borrow `*f` as mutable more than once at a time + --> $DIR/moves-based-on-type-no-recursive-stack-closure.rs:20:27 + | +LL | (f.c)(f, true); + | ----- ^ second mutable borrow occurs here + | | + | first mutable borrow occurs here + | first borrow later used by call + +error[E0382]: borrow of moved value: `f` + --> $DIR/moves-based-on-type-no-recursive-stack-closure.rs:32:5 + | +LL | fn conspirator<F>(mut f: F) where F: FnMut(&mut R, bool) { + | ----- move occurs because `f` has type `F`, which does not implement the `Copy` trait +LL | let mut r = R {c: Box::new(f)}; + | - value moved here +LL | f(&mut r, false) + | ^ value borrowed here after move + | +help: consider mutably borrowing `f` + | +LL | let mut r = R {c: Box::new(&mut f)}; + | ++++ + +error: aborting due to 2 previous errors + +Some errors have detailed explanations: E0382, E0499. +For more information about an error, try `rustc --explain E0382`. |