   LL|       |#![allow(unused_assignments, unused_variables)]
   LL|       |
   LL|      1|fn main() {
   LL|      1|    let mut countdown = 0;
   LL|      1|    if true {
   LL|      1|        countdown = 10;
   LL|      1|    }
                  ^0
   LL|       |
   LL|       |    const B: u32 = 100;
   LL|      1|    let x = if countdown > 7 {
   LL|      1|        countdown -= 4;
   LL|      1|        B
   LL|      0|    } else if countdown > 2 {
   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
   LL|      0|            countdown = 0;
   LL|      0|        }
   LL|      0|        countdown -= 5;
   LL|      0|        countdown
   LL|       |    } else {
   LL|      0|        return;
   LL|       |    };
   LL|       |
   LL|      1|    let mut countdown = 0;
   LL|      1|    if true {
   LL|      1|        countdown = 10;
   LL|      1|    }
                  ^0
   LL|       |
   LL|      1|    if countdown > 7 {
   LL|      1|        countdown -= 4;
   LL|      1|    } else if countdown > 2 {
                            ^0
   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
   LL|      0|            countdown = 0;
   LL|      0|        }
   LL|      0|        countdown -= 5;
   LL|       |    } else {
   LL|      0|        return;
   LL|       |    }
   LL|       |
   LL|      1|    if true {
   LL|      1|        let mut countdown = 0;
   LL|      1|        if true {
   LL|      1|            countdown = 10;
   LL|      1|        }
                      ^0
   LL|       |
   LL|      1|        if countdown > 7 {
   LL|      1|            countdown -= 4;
   LL|      1|        }
   LL|       |        //
   LL|      0|        else if countdown > 2 {
   LL|      0|            if countdown < 1 || countdown > 5 || countdown != 9 {
   LL|      0|                countdown = 0;
   LL|      0|            }
   LL|      0|            countdown -= 5;
   LL|       |        } else {
   LL|      0|            return;
   LL|       |        }
   LL|      0|    }
   LL|       |
   LL|      1|    let mut countdown = 0;
   LL|      1|    if true {
   LL|      1|        countdown = 1;
   LL|      1|    }
                  ^0
   LL|       |
   LL|      1|    let z = if countdown > 7 {
                      ^0
   LL|      0|        countdown -= 4;
   LL|      1|    } else if countdown > 2 {
   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
   LL|      0|            countdown = 0;
   LL|      0|        }
   LL|      0|        countdown -= 5;
   LL|       |    } else {
   LL|      1|        let should_be_reachable = countdown;
   LL|      1|        println!("reached");
   LL|      1|        return;
   LL|       |    };
   LL|       |
   LL|      0|    let w = if countdown > 7 {
   LL|      0|        countdown -= 4;
   LL|      0|    } else if countdown > 2 {
   LL|      0|        if countdown < 1 || countdown > 5 || countdown != 9 {
   LL|      0|            countdown = 0;
   LL|      0|        }
   LL|      0|        countdown -= 5;
   LL|       |    } else {
   LL|      0|        return;
   LL|       |    };
   LL|      1|}

