FILE fqName:<root> fileName:/forIntInIntUntilSmartcastInt.kt
  FUN name:box visibility:public modality:FINAL returnType:kotlin.String
    BLOCK_BODY
      CALL 'private final fun testIntInIntUntilSmartcastInt (): kotlin.Unit declared in <root>' type=kotlin.Unit origin=null
      RETURN type=kotlin.Nothing from='public final fun box (): kotlin.String declared in <root>'
        CONST String type=kotlin.String value="OK"
  FUN name:testIntInIntUntilSmartcastInt visibility:private modality:FINAL returnType:kotlin.Unit
    BLOCK_BODY
      VAR name:sum type:kotlin.Int [var]
        CONST Int type=kotlin.Int value=0
      VAR name:a type:kotlin.Any [val]
        CONST Int type=kotlin.Int value=5
      WHEN type=kotlin.Unit origin=IF
        BRANCH
          if: TYPE_OP type=kotlin.Boolean origin=INSTANCEOF typeOperand=kotlin.Int
            GET_VAR 'val a: kotlin.Any declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Any origin=null
          then: BLOCK type=kotlin.Unit origin=null
            BLOCK type=kotlin.Unit origin=FOR_LOOP
              VAR FOR_LOOP_ITERATOR name:tmp_0 type:kotlin.collections.IntIterator [val]
                CALL 'public open fun iterator (): kotlin.collections.IntIterator declared in kotlin.ranges.IntRange' type=kotlin.collections.IntIterator origin=FOR_LOOP_ITERATOR
                  ARG <this>: CALL 'public final fun until (<this>: kotlin.Int, to: kotlin.Int): kotlin.ranges.IntRange declared in kotlin.ranges' type=kotlin.ranges.IntRange origin=null
                    ARG <this>: CONST Int type=kotlin.Int value=1
                    ARG to: TYPE_OP type=kotlin.Int origin=IMPLICIT_CAST typeOperand=kotlin.Int
                      GET_VAR 'val a: kotlin.Any declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Any origin=null
              WHILE label=null origin=FOR_LOOP_INNER_WHILE
                condition: CALL 'public abstract fun hasNext (): kotlin.Boolean declared in kotlin.collections.IntIterator' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
                  ARG <this>: GET_VAR 'val tmp_0: kotlin.collections.IntIterator declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.collections.IntIterator origin=null
                body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
                  VAR FOR_LOOP_VARIABLE name:i type:kotlin.Int [val]
                    CALL 'public final fun next (): kotlin.Int declared in kotlin.collections.IntIterator' type=kotlin.Int origin=FOR_LOOP_NEXT
                      ARG <this>: GET_VAR 'val tmp_0: kotlin.collections.IntIterator declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.collections.IntIterator origin=null
                  BLOCK type=kotlin.Unit origin=null
                    SET_VAR 'var sum: kotlin.Int declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Unit origin=EQ
                      CALL 'public final fun plus (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=PLUS
                        ARG <this>: CALL 'public final fun times (other: kotlin.Int): kotlin.Int declared in kotlin.Int' type=kotlin.Int origin=MUL
                          ARG <this>: GET_VAR 'var sum: kotlin.Int declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Int origin=null
                          ARG other: CONST Int type=kotlin.Int value=10
                        ARG other: GET_VAR 'val i: kotlin.Int declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Int origin=null
      CALL 'public final fun assertEquals <T> (expected: T of kotlin.test.assertEquals, actual: T of kotlin.test.assertEquals, message: kotlin.String?): kotlin.Unit declared in kotlin.test' type=kotlin.Unit origin=null
        TYPE_ARG T: kotlin.Int
        ARG expected: CONST Int type=kotlin.Int value=1234
        ARG actual: GET_VAR 'var sum: kotlin.Int declared in <root>.testIntInIntUntilSmartcastInt' type=kotlin.Int origin=null
