fun testForBreak1(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    while (<iterator>.hasNext()) { // BLOCK
      val s: String = <iterator>.next()
      break
    }
  }
}

fun testForBreak2(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    OUTER@ while (<iterator>.hasNext()) { // BLOCK
      val s1: String = <iterator>.next()
      { // BLOCK
        val <iterator>: Iterator<String> = ss.iterator()
        INNER@ while (<iterator>.hasNext()) { // BLOCK
          val s2: String = <iterator>.next()
          break@OUTER
          break@INNER
          break@INNER
        }
      }
      break@OUTER
    }
  }
}

fun testForContinue1(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    while (<iterator>.hasNext()) { // BLOCK
      val s: String = <iterator>.next()
      continue
    }
  }
}

fun testForContinue2(ss: List<String>) {
  { // BLOCK
    val <iterator>: Iterator<String> = ss.iterator()
    OUTER@ while (<iterator>.hasNext()) { // BLOCK
      val s1: String = <iterator>.next()
      { // BLOCK
        val <iterator>: Iterator<String> = ss.iterator()
        INNER@ while (<iterator>.hasNext()) { // BLOCK
          val s2: String = <iterator>.next()
          continue@OUTER
          continue@INNER
          continue@INNER
        }
      }
      continue@OUTER
    }
  }
}
