]> git.proxmox.com Git - rustc.git/blobdiff - src/test/ui/pattern/bindings-after-at/borrowck-pat-at-and-box.stderr
Update unsuspicious file list
[rustc.git] / src / test / ui / pattern / bindings-after-at / borrowck-pat-at-and-box.stderr
index e96c15b0fa7ddd604ce2a95994c78f97e30437a8..f27df32ccfa5ce2afbe63b73b2f62255371b7228 100644 (file)
-error[E0007]: cannot bind by-move with sub-bindings
-  --> $DIR/borrowck-pat-at-and-box.rs:16:9
-   |
-LL |     let a @ box &b = Box::new(&C);
-   |         ^^^^^^^^^^ binds an already bound by-move value by moving it
-
-error[E0007]: cannot bind by-move with sub-bindings
-  --> $DIR/borrowck-pat-at-and-box.rs:20:9
-   |
-LL |     let a @ box b = Box::new(C);
-   |         ^^^^^^^^^ binds an already bound by-move value by moving it
-
-error[E0007]: cannot bind by-move with sub-bindings
-  --> $DIR/borrowck-pat-at-and-box.rs:32:25
-   |
-LL |     match Box::new(C) { a @ box b => {} }
-   |                         ^^^^^^^^^ binds an already bound by-move value by moving it
-
-error[E0009]: cannot bind by-move and by-ref in the same pattern
-  --> $DIR/borrowck-pat-at-and-box.rs:36:21
+error: cannot move out of value because it is borrowed
+  --> $DIR/borrowck-pat-at-and-box.rs:31:9
    |
 LL |     let ref a @ box b = Box::new(NC);
-   |         ------------^
+   |         -----^^^^^^^-
    |         |           |
-   |         |           by-move pattern here
-   |         by-ref pattern here
+   |         |           value moved into `b` here
+   |         value borrowed, by `a`, here
 
-error: cannot borrow `a` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-pat-at-and-box.rs:38:9
+error: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:34:9
    |
 LL |     let ref a @ box ref mut b = Box::new(nc());
    |         -----^^^^^^^---------
    |         |           |
-   |         |           mutable borrow occurs here
-   |         immutable borrow occurs here
+   |         |           mutable borrow, by `b`, occurs here
+   |         immutable borrow, by `a`, occurs here
 
-error: cannot borrow `a` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-pat-at-and-box.rs:40:9
+error: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:36:9
    |
 LL |     let ref a @ box ref mut b = Box::new(NC);
    |         -----^^^^^^^---------
    |         |           |
-   |         |           mutable borrow occurs here
-   |         immutable borrow occurs here
+   |         |           mutable borrow, by `b`, occurs here
+   |         immutable borrow, by `a`, occurs here
 
-error: cannot borrow `a` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-pat-at-and-box.rs:42:9
+error: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:38:9
    |
 LL |     let ref a @ box ref mut b = Box::new(NC);
    |         -----^^^^^^^---------
    |         |           |
-   |         |           mutable borrow occurs here
-   |         immutable borrow occurs here
+   |         |           mutable borrow, by `b`, occurs here
+   |         immutable borrow, by `a`, occurs here
 
-error: cannot borrow `a` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-pat-at-and-box.rs:45:9
+error: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:42:9
    |
 LL |     let ref a @ box ref mut b = Box::new(NC);
    |         -----^^^^^^^---------
    |         |           |
-   |         |           mutable borrow occurs here
-   |         immutable borrow occurs here
+   |         |           mutable borrow, by `b`, occurs here
+   |         immutable borrow, by `a`, occurs here
 
-error: cannot borrow `a` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:51:9
+error: cannot borrow value as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-pat-at-and-box.rs:48:9
    |
 LL |     let ref mut a @ box ref b = Box::new(NC);
    |         ---------^^^^^^^-----
    |         |               |
-   |         |               immutable borrow occurs here
-   |         mutable borrow occurs here
+   |         |               immutable borrow, by `b`, occurs here
+   |         mutable borrow, by `a`, occurs here
 
-error: cannot borrow `a` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:65:9
+error: cannot borrow value as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-pat-at-and-box.rs:62:9
    |
 LL |         ref mut a @ box ref b => {
    |         ---------^^^^^^^-----
    |         |               |
-   |         |               immutable borrow occurs here
-   |         mutable borrow occurs here
+   |         |               immutable borrow, by `b`, occurs here
+   |         mutable borrow, by `a`, occurs here
 
-error[E0009]: cannot bind by-move and by-ref in the same pattern
-  --> $DIR/borrowck-pat-at-and-box.rs:74:38
-   |
-LL |         box [Ok(a), ref xs @ .., Err(b)] => {}
-   |                     -----------      ^ by-move pattern here
-   |                     |
-   |                     by-ref pattern here
-
-error[E0009]: cannot bind by-move and by-ref in the same pattern
-  --> $DIR/borrowck-pat-at-and-box.rs:80:46
-   |
-LL |         [Ok(box ref a), ref xs @ .., Err(box b), Err(box ref mut c)] => {}
-   |                 -----   -----------          ^           --------- by-ref pattern here
-   |                 |       |                    |
-   |                 |       |                    by-move pattern here
-   |                 |       by-ref pattern here
-   |                 by-ref pattern here
-
-error[E0007]: cannot bind by-move with sub-bindings
-  --> $DIR/borrowck-pat-at-and-box.rs:24:11
-   |
-LL |     fn f1(a @ box &b: Box<&C>) {}
-   |           ^^^^^^^^^^ binds an already bound by-move value by moving it
-
-error[E0007]: cannot bind by-move with sub-bindings
-  --> $DIR/borrowck-pat-at-and-box.rs:28:11
-   |
-LL |     fn f2(a @ box b: Box<C>) {}
-   |           ^^^^^^^^^ binds an already bound by-move value by moving it
-
-error: cannot borrow `a` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:57:11
+error: cannot borrow value as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-pat-at-and-box.rs:54:11
    |
 LL |     fn f5(ref mut a @ box ref b: Box<NC>) {
    |           ---------^^^^^^^-----
    |           |               |
-   |           |               immutable borrow occurs here
-   |           mutable borrow occurs here
-
-error[E0382]: use of moved value
-  --> $DIR/borrowck-pat-at-and-box.rs:16:18
-   |
-LL |     let a @ box &b = Box::new(&C);
-   |         ---------^   ------------ move occurs because value has type `std::boxed::Box<&C>`, which does not implement the `Copy` trait
-   |         |        |
-   |         |        value used here after move
-   |         value moved here
+   |           |               immutable borrow, by `b`, occurs here
+   |           mutable borrow, by `a`, occurs here
 
-error[E0382]: use of moved value
-  --> $DIR/borrowck-pat-at-and-box.rs:20:17
-   |
-LL |     let a @ box b = Box::new(C);
-   |         --------^   ----------- move occurs because value has type `std::boxed::Box<C>`, which does not implement the `Copy` trait
-   |         |       |
-   |         |       value used here after move
-   |         value moved here
+error[E0382]: borrow of moved value
+  --> $DIR/borrowck-pat-at-and-box.rs:31:9
+   |
+LL |     let ref a @ box b = Box::new(NC);
+   |         ^^^^^       - value moved here
+   |         |
+   |         value borrowed here after move
+   |
+   = note: move occurs because value has type `NC`, which does not implement the `Copy` trait
+help: borrow this binding in the pattern to avoid moving the value
+   |
+LL |     let ref a @ box ref b = Box::new(NC);
+   |                     +++
 
-error[E0382]: use of moved value
-  --> $DIR/borrowck-pat-at-and-box.rs:32:33
-   |
-LL |     match Box::new(C) { a @ box b => {} }
-   |           -----------   --------^
-   |           |             |       |
-   |           |             |       value used here after move
-   |           |             value moved here
-   |           move occurs because value has type `std::boxed::Box<C>`, which does not implement the `Copy` trait
+error[E0502]: cannot borrow value as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-pat-at-and-box.rs:38:9
+   |
+LL |     let ref a @ box ref mut b = Box::new(NC);
+   |         ^^^^^       --------- mutable borrow occurs here
+   |         |
+   |         immutable borrow occurs here
+...
+LL |     *b = NC;
+   |     ------- mutable borrow later used here
 
-error[E0502]: cannot borrow `_` as mutable because it is also borrowed as immutable
-  --> $DIR/borrowck-pat-at-and-box.rs:45:21
+error[E0502]: cannot borrow value as immutable because it is also borrowed as mutable
+  --> $DIR/borrowck-pat-at-and-box.rs:42:9
    |
 LL |     let ref a @ box ref mut b = Box::new(NC);
-   |         ------------^^^^^^^^^
-   |         |           |
-   |         |           mutable borrow occurs here
+   |         ^^^^^       --------- mutable borrow occurs here
+   |         |
    |         immutable borrow occurs here
 ...
-LL |     drop(a);
-   |          - immutable borrow later used here
+LL |     *b = NC;
+   |     ------- mutable borrow later used here
 
-error[E0502]: cannot borrow `_` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:51:25
+error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:48:9
    |
 LL |     let ref mut a @ box ref b = Box::new(NC);
-   |         ----------------^^^^^
-   |         |               |
-   |         |               immutable borrow occurs here
+   |         ^^^^^^^^^       ----- immutable borrow occurs here
+   |         |
    |         mutable borrow occurs here
 ...
-LL |     *a = Box::new(NC);
-   |     -- mutable borrow later used here
+LL |     drop(b);
+   |          - immutable borrow later used here
 
-error[E0502]: cannot borrow `_` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:65:25
+error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:62:9
    |
 LL |         ref mut a @ box ref b => {
-   |         ----------------^^^^^
-   |         |               |
-   |         |               immutable borrow occurs here
+   |         ^^^^^^^^^       ----- immutable borrow occurs here
+   |         |
    |         mutable borrow occurs here
 ...
-LL |             *a = Box::new(NC);
-   |             -- mutable borrow later used here
-
-error[E0382]: use of moved value
-  --> $DIR/borrowck-pat-at-and-box.rs:24:20
-   |
-LL |     fn f1(a @ box &b: Box<&C>) {}
-   |           ---------^
-   |           |        |
-   |           |        value used here after move
-   |           value moved here
-   |           move occurs because value has type `std::boxed::Box<&C>`, which does not implement the `Copy` trait
+LL |             drop(b);
+   |                  - immutable borrow later used here
 
-error[E0382]: use of moved value
-  --> $DIR/borrowck-pat-at-and-box.rs:28:19
-   |
-LL |     fn f2(a @ box b: Box<C>) {}
-   |           --------^
-   |           |       |
-   |           |       value used here after move
-   |           value moved here
-   |           move occurs because value has type `std::boxed::Box<C>`, which does not implement the `Copy` trait
-
-error[E0502]: cannot borrow `_` as immutable because it is also borrowed as mutable
-  --> $DIR/borrowck-pat-at-and-box.rs:57:27
+error[E0502]: cannot borrow value as mutable because it is also borrowed as immutable
+  --> $DIR/borrowck-pat-at-and-box.rs:54:11
    |
 LL |     fn f5(ref mut a @ box ref b: Box<NC>) {
-   |           ----------------^^^^^
-   |           |               |
-   |           |               immutable borrow occurs here
+   |           ^^^^^^^^^       ----- immutable borrow occurs here
+   |           |
    |           mutable borrow occurs here
 ...
-LL |         *a = Box::new(NC);
-   |         -- mutable borrow later used here
+LL |         drop(b);
+   |              - immutable borrow later used here
 
-error: aborting due to 24 previous errors
+error: aborting due to 14 previous errors
 
-Some errors have detailed explanations: E0007, E0009, E0382, E0502.
-For more information about an error, try `rustc --explain E0007`.
+Some errors have detailed explanations: E0382, E0502.
+For more information about an error, try `rustc --explain E0382`.