// Generated from "forstatement/ForStatement.java"
@file:Suppress(
 "ALWAYS_NULL",
 "PARAMETER_NAME_CHANGED_ON_OVERRIDE",
 "SENSELESS_COMPARISON",
 "UNCHECKED_CAST",
 "UNNECESSARY_LATEINIT",
 "UNNECESSARY_NOT_NULL_ASSERTION",
 "UNREACHABLE_CODE",
 "UNUSED_ANONYMOUS_PARAMETER",
 "UNUSED_PARAMETER",
 "UNUSED_VARIABLE",
 "USELESS_CAST",
 "VARIABLE_IN_SINGLETON_WITHOUT_THREAD_LOCAL",
 "VARIABLE_WITH_REDUNDANT_INITIALIZER",
 "REDUNDANT_ELSE_IN_WHEN")

package forstatement

import javaemul.lang.*
import kotlin.Boolean
import kotlin.Char
import kotlin.Int
import kotlin.Long
import kotlin.Suppress
import kotlin.jvm.JvmStatic
import kotlin.run

open class ForStatement {
 open fun test() {
  var i: Int = 0
  var count: Int = 0
  while (i < 100) {
   count = count + 1
   i = i + 1
  }
  var l: Long = 0L
  var count_1: Long = 0L
  while (l < 100L) {
   count_1 = count_1 + 1L
   l = l + 1L
   l = l + 1L
  }
  var c: Char = 'a'
  while (c.code < 122) {
   c = (c.code + 1).toChar()
  }
  var a: Boolean = false
  while (run {
   a = a.or(true)
   a
  }) {}
  var b: Boolean = false
  while (run {
   b = a
   b
  }) {}
  ForStatement.returnsValue()
  while (true) {
   ForStatement.returnsValue()
  }
 }

 open fun testContinue() {
  var i: Int = 0
  var j: Int = 0
  while (i < 10) {
   LABEL_CONTINUE@ do {
    if (i == 5) {
     break
    }
    var k: Int = 0
    var l: Int = 0
    while (k < 10) {
     if (j == 5) {
      break@LABEL_CONTINUE
     }
     k = k + 1
     l = l + 1
    }
   } while (false)
   i = i + 1
   j = j + 1
  }
 }

 open fun testInitializeInForCondition() {
  var i: Int = 0
  var x: Int = 0
  while (i < 1 && run {
   x = 3
   x
  } != 0) {
   var y: Int = 0
   y = i + x
   i = i + 1
  }
 }

 open fun testForStatementInsideDeadCode() {
  if (false) {
   var i: Int = 0
   while (i < 100) {
    i = i + 1
   }
  }
 }

 companion object {
  @JvmStatic
  private fun returnsValue(): Int {
   return 1
  }
 }
}
