FILE /forWithImplicitReceivers.kt
  CLASS OBJECT FiveTimes
    CONSTRUCTOR private constructor FiveTimes()
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='FiveTimes'
  CLASS CLASS IntCell
    CONSTRUCTOR public constructor IntCell(value: kotlin.Int)
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'constructor Any()'
        INSTANCE_INITIALIZER_CALL classDescriptor='IntCell'
    PROPERTY public final var value: kotlin.Int
      FIELD PROPERTY_BACKING_FIELD public final var value: kotlin.Int
        EXPRESSION_BODY
          GET_VAR 'value-parameter value: Int' type=kotlin.Int origin=INITIALIZE_PROPERTY_FROM_PARAMETER
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <get-value>(): kotlin.Int
        BLOCK_BODY
          RETURN type=kotlin.Nothing from='<get-value>(): Int'
            GET_FIELD 'value: Int' type=kotlin.Int origin=null
              receiver: GET_VAR '<receiver: IntCell>' type=IntCell origin=null
      FUN DEFAULT_PROPERTY_ACCESSOR public final fun <set-value>(<set-?>: kotlin.Int): kotlin.Unit
        BLOCK_BODY
          SET_FIELD 'value: Int' type=kotlin.Unit origin=null
            receiver: GET_VAR '<receiver: IntCell>' type=IntCell origin=null
            value: GET_VAR 'value-parameter <set-?>: Int' type=kotlin.Int origin=null
  CLASS INTERFACE IReceiver
    FUN public open operator fun FiveTimes.iterator(): IntCell
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='iterator() on FiveTimes: IntCell'
          CALL 'constructor IntCell(Int)' type=IntCell origin=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() on IntCell: Boolean'
          CALL 'GT0(Int): Boolean' type=kotlin.Boolean origin=GT
            arg0: CALL 'compareTo(Int): Int' type=kotlin.Int origin=GT
              $this: CALL '<get-value>(): Int' type=kotlin.Int origin=GET_PROPERTY
                $this: GET_VAR '<receiver: hasNext() on IntCell: Boolean>' type=IntCell origin=null
              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() on IntCell: Int'
          BLOCK type=kotlin.Int origin=POSTFIX_DECR
            VAR IR_TEMPORARY_VARIABLE val tmp0_this: IntCell
              GET_VAR '<receiver: next() on IntCell: Int>' type=IntCell origin=null
            BLOCK type=kotlin.Int origin=POSTFIX_DECR
              VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int
                CALL '<get-value>(): Int' type=kotlin.Int origin=POSTFIX_DECR
                  $this: GET_VAR 'tmp0_this: IntCell' type=IntCell origin=null
              CALL '<set-value>(Int): Unit' type=kotlin.Unit origin=POSTFIX_DECR
                $this: GET_VAR 'tmp0_this: IntCell' type=IntCell origin=null
                <set-?>: CALL 'dec(): Int' type=kotlin.Int origin=POSTFIX_DECR
                  $this: GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
              GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
  FUN public fun IReceiver.test(): kotlin.Unit
    BLOCK_BODY
      BLOCK type=kotlin.Unit origin=FOR_LOOP
        VAR IR_TEMPORARY_VARIABLE val tmp0_iterator: IntCell
          CALL 'iterator() on FiveTimes: IntCell' type=IntCell origin=FOR_LOOP_ITERATOR
            $this: GET_VAR '<receiver: test() on IReceiver: Unit>' type=IReceiver origin=null
            $receiver: GET_OBJECT 'FiveTimes' type=FiveTimes
        WHILE label=null origin=FOR_LOOP_INNER_WHILE
          condition: CALL 'hasNext() on IntCell: Boolean' type=kotlin.Boolean origin=FOR_LOOP_HAS_NEXT
            $this: GET_VAR '<receiver: test() on IReceiver: Unit>' type=IReceiver origin=null
            $receiver: GET_VAR 'tmp0_iterator: IntCell' type=IntCell origin=null
          body: BLOCK type=kotlin.Unit origin=FOR_LOOP_INNER_WHILE
            VAR val i: kotlin.Int
              CALL 'next() on IntCell: Int' type=kotlin.Int origin=FOR_LOOP_NEXT
                $this: GET_VAR '<receiver: test() on IReceiver: Unit>' type=IReceiver origin=null
                $receiver: GET_VAR 'tmp0_iterator: IntCell' type=IntCell origin=null
            BLOCK type=kotlin.Unit origin=null
              CALL 'println(Int): Unit' type=kotlin.Unit origin=null
                message: GET_VAR 'i: Int' type=kotlin.Int origin=null
