FILE /incrementDecrement.kt
  PROPERTY public var p: kotlin.Int
    FIELD PROPERTY_BACKING_FIELD public var p: kotlin.Int
      EXPRESSION_BODY
        CONST Int type=kotlin.Int value='0'
    FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-p>(): kotlin.Int
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='<get-p>(): Int'
          GET_FIELD 'p: Int' type=kotlin.Int origin=null
    FUN DEFAULT_PROPERTY_ACCESSOR public fun <set-p>(<set-?>: kotlin.Int): kotlin.Unit
      BLOCK_BODY
        SET_FIELD 'p: Int' type=kotlin.Unit origin=null
          value: GET_VAR 'value-parameter <set-?>: Int' type=kotlin.Int origin=null
  PROPERTY public val arr: kotlin.IntArray
    FIELD PROPERTY_BACKING_FIELD public val arr: kotlin.IntArray
      EXPRESSION_BODY
        CALL 'intArrayOf(vararg Int): IntArray' type=kotlin.IntArray origin=null
          elements: VARARG type=IntArray varargElementType=Int
            CONST Int type=kotlin.Int value='1'
            CONST Int type=kotlin.Int value='2'
            CONST Int type=kotlin.Int value='3'
    FUN DEFAULT_PROPERTY_ACCESSOR public fun <get-arr>(): kotlin.IntArray
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='<get-arr>(): IntArray'
          GET_FIELD 'arr: IntArray' type=kotlin.IntArray origin=null
  FUN public fun testVarPrefix(): kotlin.Unit
    BLOCK_BODY
      VAR var x: kotlin.Int
        CONST Int type=kotlin.Int value='0'
      VAR val x1: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          VAR IR_TEMPORARY_VARIABLE val tmp0: kotlin.Int
            CALL 'inc(): Int' type=kotlin.Int origin=PREFIX_INCR
              $this: GET_VAR 'x: Int' type=kotlin.Int origin=PREFIX_INCR
          SET_VAR 'x: Int' type=kotlin.Unit origin=PREFIX_INCR
            GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
      VAR val x2: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int
            CALL 'dec(): Int' type=kotlin.Int origin=PREFIX_DECR
              $this: GET_VAR 'x: Int' type=kotlin.Int origin=PREFIX_DECR
          SET_VAR 'x: Int' type=kotlin.Unit origin=PREFIX_DECR
            GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
  FUN public fun testVarPostfix(): kotlin.Unit
    BLOCK_BODY
      VAR var x: kotlin.Int
        CONST Int type=kotlin.Int value='0'
      VAR val x1: kotlin.Int
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          VAR IR_TEMPORARY_VARIABLE val tmp0: kotlin.Int
            GET_VAR 'x: Int' type=kotlin.Int origin=POSTFIX_INCR
          SET_VAR 'x: Int' type=kotlin.Unit origin=POSTFIX_INCR
            CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
      VAR val x2: kotlin.Int
        BLOCK type=kotlin.Int origin=POSTFIX_DECR
          VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int
            GET_VAR 'x: Int' type=kotlin.Int origin=POSTFIX_DECR
          SET_VAR 'x: Int' type=kotlin.Unit origin=POSTFIX_DECR
            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 testPropPrefix(): kotlin.Unit
    BLOCK_BODY
      VAR val p1: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          BLOCK type=kotlin.Int origin=PREFIX_INCR
            VAR IR_TEMPORARY_VARIABLE val tmp0: kotlin.Int
              CALL 'inc(): Int' type=kotlin.Int origin=PREFIX_INCR
                $this: CALL '<get-p>(): Int' type=kotlin.Int origin=PREFIX_INCR
            CALL '<set-p>(Int): Unit' type=kotlin.Unit origin=PREFIX_INCR
              <set-?>: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
            GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
      VAR val p2: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          BLOCK type=kotlin.Int origin=PREFIX_DECR
            VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int
              CALL 'dec(): Int' type=kotlin.Int origin=PREFIX_DECR
                $this: CALL '<get-p>(): Int' type=kotlin.Int origin=PREFIX_DECR
            CALL '<set-p>(Int): Unit' type=kotlin.Unit origin=PREFIX_DECR
              <set-?>: GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
            GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
  FUN public fun testPropPostfix(): kotlin.Unit
    BLOCK_BODY
      VAR val p1: kotlin.Int
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          BLOCK type=kotlin.Int origin=POSTFIX_INCR
            VAR IR_TEMPORARY_VARIABLE val tmp0: kotlin.Int
              CALL '<get-p>(): Int' type=kotlin.Int origin=POSTFIX_INCR
            CALL '<set-p>(Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR
              <set-?>: CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
                $this: GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
            GET_VAR 'tmp0: Int' type=kotlin.Int origin=null
      VAR val p2: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          BLOCK type=kotlin.Int origin=PREFIX_DECR
            VAR IR_TEMPORARY_VARIABLE val tmp1: kotlin.Int
              CALL 'dec(): Int' type=kotlin.Int origin=PREFIX_DECR
                $this: CALL '<get-p>(): Int' type=kotlin.Int origin=PREFIX_DECR
            CALL '<set-p>(Int): Unit' type=kotlin.Unit origin=PREFIX_DECR
              <set-?>: GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
            GET_VAR 'tmp1: Int' type=kotlin.Int origin=null
  FUN public fun testArrayPrefix(): kotlin.Unit
    BLOCK_BODY
      VAR val a1: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          VAR IR_TEMPORARY_VARIABLE val tmp0_array: kotlin.IntArray
            CALL '<get-arr>(): IntArray' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE val tmp1_index0: kotlin.Int
            CONST Int type=kotlin.Int value='0'
          VAR IR_TEMPORARY_VARIABLE val tmp2: kotlin.Int
            CALL 'inc(): Int' type=kotlin.Int origin=PREFIX_INCR
              $this: CALL 'get(Int): Int' type=kotlin.Int origin=PREFIX_INCR
                $this: GET_VAR 'tmp0_array: IntArray' type=kotlin.IntArray origin=null
                index: GET_VAR 'tmp1_index0: Int' type=kotlin.Int origin=null
          CALL 'set(Int, Int): Unit' type=kotlin.Unit origin=PREFIX_INCR
            $this: GET_VAR 'tmp0_array: IntArray' type=kotlin.IntArray origin=null
            index: GET_VAR 'tmp1_index0: Int' type=kotlin.Int origin=null
            value: GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
      VAR val a2: kotlin.Int
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          VAR IR_TEMPORARY_VARIABLE val tmp3_array: kotlin.IntArray
            CALL '<get-arr>(): IntArray' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE val tmp4_index0: kotlin.Int
            CONST Int type=kotlin.Int value='0'
          VAR IR_TEMPORARY_VARIABLE val tmp5: kotlin.Int
            CALL 'dec(): Int' type=kotlin.Int origin=PREFIX_DECR
              $this: CALL 'get(Int): Int' type=kotlin.Int origin=PREFIX_DECR
                $this: GET_VAR 'tmp3_array: IntArray' type=kotlin.IntArray origin=null
                index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int origin=null
          CALL 'set(Int, Int): Unit' type=kotlin.Unit origin=PREFIX_DECR
            $this: GET_VAR 'tmp3_array: IntArray' type=kotlin.IntArray origin=null
            index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int origin=null
            value: GET_VAR 'tmp5: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp5: Int' type=kotlin.Int origin=null
  FUN public fun testArrayPostfix(): kotlin.Unit
    BLOCK_BODY
      VAR val a1: kotlin.Int
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          VAR IR_TEMPORARY_VARIABLE val tmp0_array: kotlin.IntArray
            CALL '<get-arr>(): IntArray' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE val tmp1_index0: kotlin.Int
            CONST Int type=kotlin.Int value='0'
          VAR IR_TEMPORARY_VARIABLE val tmp2: kotlin.Int
            CALL 'get(Int): Int' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'tmp0_array: IntArray' type=kotlin.IntArray origin=null
              index: GET_VAR 'tmp1_index0: Int' type=kotlin.Int origin=null
          CALL 'set(Int, Int): Unit' type=kotlin.Unit origin=POSTFIX_INCR
            $this: GET_VAR 'tmp0_array: IntArray' type=kotlin.IntArray origin=null
            index: GET_VAR 'tmp1_index0: Int' type=kotlin.Int origin=null
            value: CALL 'inc(): Int' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp2: Int' type=kotlin.Int origin=null
      VAR val a2: kotlin.Int
        BLOCK type=kotlin.Int origin=POSTFIX_DECR
          VAR IR_TEMPORARY_VARIABLE val tmp3_array: kotlin.IntArray
            CALL '<get-arr>(): IntArray' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE val tmp4_index0: kotlin.Int
            CONST Int type=kotlin.Int value='0'
          VAR IR_TEMPORARY_VARIABLE val tmp5: kotlin.Int
            CALL 'get(Int): Int' type=kotlin.Int origin=POSTFIX_DECR
              $this: GET_VAR 'tmp3_array: IntArray' type=kotlin.IntArray origin=null
              index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int origin=null
          CALL 'set(Int, Int): Unit' type=kotlin.Unit origin=POSTFIX_DECR
            $this: GET_VAR 'tmp3_array: IntArray' type=kotlin.IntArray origin=null
            index: GET_VAR 'tmp4_index0: Int' type=kotlin.Int origin=null
            value: CALL 'dec(): Int' type=kotlin.Int origin=POSTFIX_DECR
              $this: GET_VAR 'tmp5: Int' type=kotlin.Int origin=null
          GET_VAR 'tmp5: Int' type=kotlin.Int origin=null
