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);
   |         -----^^^^^^^-
   |         |           |
   |         |           value is moved into `b` here
   |         value is borrowed by `a` here

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());
   |         -----^^^^^^^---------
   |         |           |
   |         |           value is mutably borrowed by `b` here
   |         value is borrowed by `a` here

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);
   |         -----^^^^^^^---------
   |         |           |
   |         |           value is mutably borrowed by `b` here
   |         value is borrowed by `a` here

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);
   |         -----^^^^^^^---------
   |         |           |
   |         |           value is mutably borrowed by `b` here
   |         value is borrowed by `a` here

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);
   |         -----^^^^^^^---------
   |         |           |
   |         |           value is mutably borrowed by `b` here
   |         value is borrowed by `a` here

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);
   |         ---------^^^^^^^-----
   |         |               |
   |         |               value is borrowed by `b` here
   |         value is mutably borrowed by `a` here

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 => {
   |         ---------^^^^^^^-----
   |         |               |
   |         |               value is borrowed by `b` here
   |         value is mutably borrowed by `a` here

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>) {
   |           ---------^^^^^^^-----
   |           |               |
   |           |               value is borrowed by `b` here
   |           value is mutably borrowed by `a` 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[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 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
   |         |
   |         immutable borrow occurs here
...
LL |     *b = NC;
   |     ------- mutable borrow later used here

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
   |         |
   |         mutable borrow occurs here
...
LL |     drop(b);
   |          - immutable borrow later used here

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
   |         |
   |         mutable borrow occurs here
...
LL |             drop(b);
   |                  - immutable borrow later used here

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
   |           |
   |           mutable borrow occurs here
...
LL |         drop(b);
   |              - immutable borrow later used here

error: aborting due to 14 previous errors

Some errors have detailed explanations: E0382, E0502.
For more information about an error, try `rustc --explain E0382`.