FILE /forWithImplicitReceivers.kt
  CLASS OBJECT FiveTimes
    FUN private constructor FiveTimes()
      BLOCK_BODY
  CLASS CLASS IntCell
    FUN public constructor IntCell(/*0*/ value: kotlin.Int)
      BLOCK_BODY
        SET_BACKING_FIELD value type=kotlin.Unit operator=null
          GET_VAR value type=kotlin.Int operator=INITIALIZE_PROPERTY_FROM_PARAMETER
    PROPERTY public final var value: kotlin.Int
      EXPRESSION_BODY
        GET_VAR value type=kotlin.Int operator=INITIALIZE_PROPERTY_FROM_PARAMETER
  CLASS INTERFACE IReceiver
    FUN public open operator fun FiveTimes.iterator(): IntCell
      BLOCK_BODY
        RETURN type=kotlin.Nothing from=iterator
          CALL .<init> type=IntCell operator=null
            value: CONST Int type=kotlin.Int value='5'
    FUN public open operator fun IntCell.hasNext(): kotlin.Boolean
      BLOCK_BODY
        RETURN type=kotlin.Nothing from=hasNext
          CALL .GT0 type=kotlin.Boolean operator=GT
            arg0: CALL .compareTo type=kotlin.Int operator=GT
              $this: CALL .<get-value> type=kotlin.Int operator=GET_PROPERTY
                $this: $RECEIVER of: hasNext type=IntCell
              other: CONST Int type=kotlin.Int value='0'
    FUN public open operator fun IntCell.next(): kotlin.Int
      BLOCK_BODY
        RETURN type=kotlin.Nothing from=next
          BLOCK type=kotlin.Int operator=POSTFIX_DECR
            VAR val tmp0: kotlin.Int
              CALL .<get-value> type=kotlin.Int operator=POSTFIX_DECR
                $this: $RECEIVER of: next type=IntCell
            CALL .<set-value> type=kotlin.Unit operator=POSTFIX_DECR
              $this: $RECEIVER of: next type=IntCell
              <set-?>: CALL .dec type=kotlin.Int operator=POSTFIX_DECR
                $this: GET_VAR tmp0 type=kotlin.Int operator=null
            GET_VAR tmp0 type=kotlin.Int operator=null
  FUN public fun IReceiver.test(): kotlin.Unit
    BLOCK_BODY
      BLOCK type=kotlin.Unit operator=FOR_LOOP
        VAR val tmp0_iterator: IntCell
          CALL .iterator type=IntCell operator=FOR_LOOP_ITERATOR
            $this: $RECEIVER of: test type=IReceiver
            $receiver: GET_OBJECT FiveTimes type=FiveTimes
        WHILE label=null operator=FOR_LOOP_INNER_WHILE
          condition: CALL .hasNext type=kotlin.Boolean operator=FOR_LOOP_HAS_NEXT
            $this: $RECEIVER of: test type=IReceiver
            $receiver: GET_VAR tmp0_iterator type=IntCell operator=null
          body: BLOCK type=kotlin.Unit operator=FOR_LOOP_INNER_WHILE
            VAR val i: kotlin.Int
              CALL .next type=kotlin.Int operator=FOR_LOOP_NEXT
                $this: $RECEIVER of: test type=IReceiver
                $receiver: GET_VAR tmp0_iterator type=IntCell operator=null
            BLOCK type=kotlin.Unit operator=null
              CALL .println type=kotlin.Unit operator=null
                message: GET_VAR i type=kotlin.Int operator=null
