]> git.lizzy.rs Git - rust.git/blobdiff - src/test/ui/borrowck/borrowck-migrate-to-nll.edition.stderr
Auto merge of #63233 - RalfJung:get_unchecked, r=Centril
[rust.git] / src / test / ui / borrowck / borrowck-migrate-to-nll.edition.stderr
index 663164cfc2c1ced99c495cc92094868d2ef8a6f1..a33a1d00a57869bcb33fe0b15757001925adacd3 100644 (file)
@@ -1,14 +1,14 @@
-warning[E0507]: cannot move out of `foo` in pattern guard
-  --> $DIR/borrowck-migrate-to-nll.rs:25:18
+warning[E0502]: cannot borrow `*block.current` as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-migrate-to-nll.rs:28:21
    |
-LL |                 (|| { let bar = foo; bar.take() })();
-   |                  ^^             ---
-   |                  |              |
-   |                  |              move occurs because `foo` has type `&mut std::option::Option<&i32>`, which does not implement the `Copy` trait
-   |                  |              move occurs due to use in closure
-   |                  move out of `foo` occurs here
+LL |     let x = &mut block;
+   |             ---------- mutable borrow occurs here
+LL |     let p: &'a u8 = &*block.current;
+   |                     ^^^^^^^^^^^^^^^ immutable borrow occurs here
+LL |     // (use `x` and `p` so enabling NLL doesn't assign overly short lifetimes)
+LL |     drop(x);
+   |          - mutable borrow later used here
    |
-   = note: variables bound in patterns cannot be moved from until after the end of the pattern guard
    = warning: this error has been downgraded to a warning for backwards compatibility with previous releases
    = warning: this represents potential undefined behavior in your code and this warning will become a hard error in the future
    = note: for more information, try `rustc --explain E0729`