   LL|       |#![allow(dead_code, unused_assignments, unused_must_use, unused_variables)]
   LL|       |
   LL|      2|fn foo<T>(x: T) {
   LL|      2|    let mut i = 0;
   LL|     22|    while i < 10 {
   LL|     20|        i != 0 || i != 0;
                                ^2
   LL|     20|        i += 1;
   LL|       |    }
   LL|      2|}
  ------------------
  | unused::foo::<f32>:
  |   LL|      1|fn foo<T>(x: T) {
  |   LL|      1|    let mut i = 0;
  |   LL|     11|    while i < 10 {
  |   LL|     10|        i != 0 || i != 0;
  |                                ^1
  |   LL|     10|        i += 1;
  |   LL|       |    }
  |   LL|      1|}
  ------------------
  | unused::foo::<u32>:
  |   LL|      1|fn foo<T>(x: T) {
  |   LL|      1|    let mut i = 0;
  |   LL|     11|    while i < 10 {
  |   LL|     10|        i != 0 || i != 0;
  |                                ^1
  |   LL|     10|        i += 1;
  |   LL|       |    }
  |   LL|      1|}
  ------------------
   LL|       |
   LL|      0|fn unused_template_func<T>(x: T) {
   LL|      0|    let mut i = 0;
   LL|      0|    while i < 10 {
   LL|      0|        i != 0 || i != 0;
   LL|      0|        i += 1;
   LL|       |    }
   LL|      0|}
   LL|       |
   LL|      0|fn unused_func(mut a: u32) {
   LL|      0|    if a != 0 {
   LL|      0|        a += 1;
   LL|      0|    }
   LL|      0|}
   LL|       |
   LL|      0|fn unused_func2(mut a: u32) {
   LL|      0|    if a != 0 {
   LL|      0|        a += 1;
   LL|      0|    }
   LL|      0|}
   LL|       |
   LL|      0|fn unused_func3(mut a: u32) {
   LL|      0|    if a != 0 {
   LL|      0|        a += 1;
   LL|      0|    }
   LL|      0|}
   LL|       |
   LL|      1|fn main() -> Result<(), u8> {
   LL|      1|    foo::<u32>(0);
   LL|      1|    foo::<f32>(0.0);
   LL|      1|    Ok(())
   LL|      1|}

