warning: unreachable statement
  --> $DIR/liveness-unused.rs:92:9
   |
LL |         continue;
   |         -------- any code following this expression is unreachable
LL |         drop(*x as i32);
   |         ^^^^^^^^^^^^^^^^ unreachable statement
   |
note: lint level defined here
  --> $DIR/liveness-unused.rs:1:9
   |
LL | #![warn(unused)]
   |         ^^^^^^
   = note: `#[warn(unreachable_code)]` implied by `#[warn(unused)]`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:8:7
   |
LL | fn f1(x: isize) {
   |       ^ help: consider prefixing with an underscore: `_x`
   |
note: lint level defined here
  --> $DIR/liveness-unused.rs:2:9
   |
LL | #![deny(unused_variables)]
   |         ^^^^^^^^^^^^^^^^

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:12:8
   |
LL | fn f1b(x: &mut isize) {
   |        ^ help: consider prefixing with an underscore: `_x`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:20:9
   |
LL |     let x: isize;
   |         ^ help: consider prefixing with an underscore: `_x`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:25:9
   |
LL |     let x = 3;
   |         ^ help: consider prefixing with an underscore: `_x`

error: variable `x` is assigned to, but never used
  --> $DIR/liveness-unused.rs:30:13
   |
LL |     let mut x = 3;
   |             ^
   |
   = note: consider using `_x` instead

error: value assigned to `x` is never read
  --> $DIR/liveness-unused.rs:32:5
   |
LL |     x += 4;
   |     ^
   |
note: lint level defined here
  --> $DIR/liveness-unused.rs:3:9
   |
LL | #![deny(unused_assignments)]
   |         ^^^^^^^^^^^^^^^^^^
   = help: maybe it is overwritten before being read?

error: variable `z` is assigned to, but never used
  --> $DIR/liveness-unused.rs:37:13
   |
LL |     let mut z = 3;
   |             ^
   |
   = note: consider using `_z` instead

error: unused variable: `i`
  --> $DIR/liveness-unused.rs:59:12
   |
LL |       Some(i) => {
   |            ^ help: consider prefixing with an underscore: `_i`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:79:9
   |
LL |     for x in 1..10 { }
   |         ^ help: consider prefixing with an underscore: `_x`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:84:10
   |
LL |     for (x, _) in [1, 2, 3].iter().enumerate() { }
   |          ^ help: consider prefixing with an underscore: `_x`

error: unused variable: `x`
  --> $DIR/liveness-unused.rs:89:13
   |
LL |     for (_, x) in [1, 2, 3].iter().enumerate() {
   |             ^ help: consider prefixing with an underscore: `_x`

error: variable `x` is assigned to, but never used
  --> $DIR/liveness-unused.rs:112:9
   |
LL |     let x;
   |         ^
   |
   = note: consider using `_x` instead

error: value assigned to `x` is never read
  --> $DIR/liveness-unused.rs:116:9
   |
LL |         x = 0;
   |         ^
   |
   = help: maybe it is overwritten before being read?

error: aborting due to 13 previous errors

