fun <T : Any?> magic(): T {
  throw Exception()
}

fun <T : Any?> test(value: T, value2: T) {
  val x1: Any = { // BLOCK
    val tmp0_elvis_lhs: T = value
    when {
      EQEQ(arg0 = tmp0_elvis_lhs, arg1 = null) -> 42
      else -> tmp0_elvis_lhs
    }
  }
  val x2: Any = { // BLOCK
    val tmp2_elvis_lhs: T = value
    when {
      EQEQ(arg0 = tmp2_elvis_lhs, arg1 = null) -> { // BLOCK
        val tmp1_elvis_lhs: T = value2
        when {
          EQEQ(arg0 = tmp1_elvis_lhs, arg1 = null) -> 42
          else -> tmp1_elvis_lhs
        }
      }
      else -> tmp2_elvis_lhs
    }
  }
  val x3: Any = { // BLOCK
    val tmp4_elvis_lhs: T = { // BLOCK
      val tmp3_elvis_lhs: T = value
      when {
        EQEQ(arg0 = tmp3_elvis_lhs, arg1 = null) -> value2
        else -> tmp3_elvis_lhs
      }
    }
    when {
      EQEQ(arg0 = tmp4_elvis_lhs, arg1 = null) -> 42
      else -> tmp4_elvis_lhs
    }
  }
  val x4: Any = { // BLOCK
    val tmp6_elvis_lhs: T = { // BLOCK
      val tmp5_elvis_lhs: T = value
      when {
        EQEQ(arg0 = tmp5_elvis_lhs, arg1 = null) -> value2
        else -> tmp5_elvis_lhs
      }
    }
    when {
      EQEQ(arg0 = tmp6_elvis_lhs, arg1 = null) -> 42
      else -> tmp6_elvis_lhs
    }
  }
  val x5: Any = { // BLOCK
    val tmp7_elvis_lhs: Any? = magic<Any?>()
    when {
      EQEQ(arg0 = tmp7_elvis_lhs, arg1 = null) -> 42
      else -> tmp7_elvis_lhs
    }
  }
  val x6: Any = { // BLOCK
    val tmp9_elvis_lhs: Any? = { // BLOCK
      val tmp8_elvis_lhs: T = value
      when {
        EQEQ(arg0 = tmp8_elvis_lhs, arg1 = null) -> magic<Any?>()
        else -> tmp8_elvis_lhs
      }
    }
    when {
      EQEQ(arg0 = tmp9_elvis_lhs, arg1 = null) -> 42
      else -> tmp9_elvis_lhs
    }
  }
  val x7: Any = { // BLOCK
    val tmp11_elvis_lhs: Any? = { // BLOCK
      val tmp10_elvis_lhs: Any? = magic<Any?>()
      when {
        EQEQ(arg0 = tmp10_elvis_lhs, arg1 = null) -> value
        else -> tmp10_elvis_lhs
      }
    }
    when {
      EQEQ(arg0 = tmp11_elvis_lhs, arg1 = null) -> 42
      else -> tmp11_elvis_lhs
    }
  }
}
