error[E0381]: used binding `x` isn't initialized
  --> $DIR/type-check-5.rs:15:28
   |
LL |         let x: u64;
   |             - binding declared here but left uninitialized
LL |         asm!("{}", in(reg) x);
   |                            ^ `x` used here but it isn't initialized
   |
help: consider assigning a value
   |
LL |         let x: u64 = 0;
   |                    +++

error[E0381]: used binding `y` isn't initialized
  --> $DIR/type-check-5.rs:18:9
   |
LL |         let mut y: u64;
   |             ----- binding declared here but left uninitialized
LL |         asm!("{}", inout(reg) y);
   |         ^^^^^^^^^^^^^^^^^^^^^^^^ `y` used here but it isn't initialized
   |
help: consider assigning a value
   |
LL |         let mut y: u64 = 0;
   |                        +++

error[E0596]: cannot borrow `v` as mutable, as it is not declared as mutable
  --> $DIR/type-check-5.rs:24:13
   |
LL |         let v: Vec<u64> = vec![0, 1, 2];
   |             ^ not mutable
...
LL |         asm!("{}", out(reg) v[0]);
   |                             - cannot borrow as mutable
LL |         asm!("{}", inout(reg) v[0]);
   |                               - cannot borrow as mutable
   |
help: consider changing this to be mutable
   |
LL |         let mut v: Vec<u64> = vec![0, 1, 2];
   |             +++

error: aborting due to 3 previous errors

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