fun testBreakFor() {
  val xs: IntArray = IntArray(size = 10, init = local fun <anonymous>(i: Int): Int {
    return i
  }
)
  var k: Int = 0
  { // BLOCK
    val tmp0_iterator: IntIterator = xs.iterator()
    while (tmp0_iterator.hasNext()) { // BLOCK
      val x: Int = tmp0_iterator.next()
      { // BLOCK
        when {
          greater(arg0 = k, arg1 = 2) -> break
        }
      }
    }
  }
}

fun testBreakWhile() {
  var k: Int = 0
  while (less(arg0 = k, arg1 = 10)) { // BLOCK
    when {
      greater(arg0 = k, arg1 = 2) -> break
    }
  }
}

fun testBreakDoWhile() {
  var k: Int = 0
  { // BLOCK
    do// COMPOSITE {
    when {
      greater(arg0 = k, arg1 = 2) -> break
    }
    // }    while (less(arg0 = k, arg1 = 10))
  }
}

fun testContinueFor() {
  val xs: IntArray = IntArray(size = 10, init = local fun <anonymous>(i: Int): Int {
    return i
  }
)
  var k: Int = 0
  { // BLOCK
    val tmp0_iterator: IntIterator = xs.iterator()
    while (tmp0_iterator.hasNext()) { // BLOCK
      val x: Int = tmp0_iterator.next()
      { // BLOCK
        when {
          greater(arg0 = k, arg1 = 2) -> continue
        }
      }
    }
  }
}

fun testContinueWhile() {
  var k: Int = 0
  while (less(arg0 = k, arg1 = 10)) { // BLOCK
    when {
      greater(arg0 = k, arg1 = 2) -> continue
    }
  }
}

fun testContinueDoWhile() {
  var k: Int = 0
  var s: String = ""
  { // BLOCK
    do// COMPOSITE {
    { // BLOCK
      k = k.inc()
      k
    } /*~> Unit */
    when {
      greater(arg0 = k, arg1 = 2) -> continue
    }
    s = s.plus(other = k + ";")
    // }    while (less(arg0 = k, arg1 = 10))
  }
  when {
    EQEQ(arg0 = s, arg1 = "1;2;").not() -> throw AssertionError(p0 = s)
  }
}
