   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|}

