FILE fqName:<root> fileName:/incrementDecrement.kt
  PROPERTY name:p visibility:public modality:FINAL flags:[var]
    FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public flags:[static]
      EXPRESSION_BODY
        CONST Int type=kotlin.Int value=0
    FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]
      correspondingProperty: PROPERTY name:p visibility:public modality:FINAL flags:[var]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public flags:[static]' type=kotlin.Int origin=null
    FUN DEFAULT_PROPERTY_ACCESSOR name:<set-p> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]
      correspondingProperty: PROPERTY name:p visibility:public modality:FINAL flags:[var]
      VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:[]
      BLOCK_BODY
        SET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:kotlin.Int visibility:public flags:[static]' type=kotlin.Unit origin=null
          value: GET_VAR 'VALUE_PARAMETER name:<set-?> index:0 type:kotlin.Int flags:[]' type=kotlin.Int origin=null
  PROPERTY name:arr visibility:public modality:FINAL flags:[val]
    FIELD PROPERTY_BACKING_FIELD name:arr type:kotlin.IntArray visibility:public flags:[final,static]
      EXPRESSION_BODY
        CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:intArrayOf visibility:public modality:FINAL <> (elements:kotlin.IntArray) returnType:kotlin.IntArray flags:[]' type=kotlin.IntArray origin=null
          elements: VARARG type=kotlin.IntArray varargElementType=kotlin.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 name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]
      correspondingProperty: PROPERTY name:arr visibility:public modality:FINAL flags:[val]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:arr type:kotlin.IntArray visibility:public flags:[final,static]' type=kotlin.IntArray origin=null
  FUN name:testVarPrefix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:x type:kotlin.Int flags:[var]
        CONST Int type=kotlin.Int value=0
      VAR name:x1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          SET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Unit origin=PREFIX_INCR
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
              $this: GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=PREFIX_INCR
          GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=PREFIX_INCR
      VAR name:x2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          SET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Unit origin=PREFIX_DECR
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
              $this: GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=PREFIX_DECR
          GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=PREFIX_DECR
  FUN name:testVarPostfix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:x type:kotlin.Int flags:[var]
        CONST Int type=kotlin.Int value=0
      VAR name:x1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]
            GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=POSTFIX_INCR
          SET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Unit origin=POSTFIX_INCR
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
      VAR name:x2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=POSTFIX_DECR
          VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]
            GET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Int origin=POSTFIX_DECR
          SET_VAR 'VAR name:x type:kotlin.Int flags:[var]' type=kotlin.Unit origin=POSTFIX_DECR
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_DECR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
  FUN name:testPropPrefix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:p1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          BLOCK type=kotlin.Int origin=PREFIX_INCR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<set-p> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PREFIX_INCR
              <set-?>: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
                $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
      VAR name:p2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          BLOCK type=kotlin.Int origin=PREFIX_DECR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<set-p> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PREFIX_DECR
              <set-?>: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
                $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
  FUN name:testPropPostfix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:p1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          BLOCK type=kotlin.Int origin=POSTFIX_INCR
            VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]
              CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<set-p> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=POSTFIX_INCR
              <set-?>: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
                $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
            GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
      VAR name:p2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          BLOCK type=kotlin.Int origin=PREFIX_DECR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<set-p> visibility:public modality:FINAL <> (<set-?>:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PREFIX_DECR
              <set-?>: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
                $this: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
  FUN name:testArrayPrefix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:a1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_INCR
          VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]
            CONST Int type=kotlin.Int value=0
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:set visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int, value:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PREFIX_INCR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
            value: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
              $this: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
                $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
                index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_INCR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
      VAR name:a2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=PREFIX_DECR
          VAR IR_TEMPORARY_VARIABLE name:tmp2_array type:kotlin.IntArray flags:[val]
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE name:tmp3_index0 type:kotlin.Int flags:[val]
            CONST Int type=kotlin.Int value=0
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:set visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int, value:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PREFIX_DECR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
            value: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
              $this: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
                $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
                index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=PREFIX_DECR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
  FUN name:testArrayPostfix visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:a1 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=POSTFIX_INCR
          VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]
            CONST Int type=kotlin.Int value=0
          VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Int flags:[val]
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
              index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:set visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int, value:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=POSTFIX_INCR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp0_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp1_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
            value: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:inc visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_INCR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp2 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
      VAR name:a2 type:kotlin.Int flags:[val]
        BLOCK type=kotlin.Int origin=POSTFIX_DECR
          VAR IR_TEMPORARY_VARIABLE name:tmp3_array type:kotlin.IntArray flags:[val]
            CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-arr> visibility:public modality:FINAL <> () returnType:kotlin.IntArray flags:[]' type=kotlin.IntArray origin=GET_PROPERTY
          VAR IR_TEMPORARY_VARIABLE name:tmp4_index0 type:kotlin.Int flags:[val]
            CONST Int type=kotlin.Int value=0
          VAR IR_TEMPORARY_VARIABLE name:tmp5 type:kotlin.Int flags:[val]
            CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:get visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_DECR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
              index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp4_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:set visibility:public modality:FINAL <> ($this:kotlin.IntArray, index:kotlin.Int, value:kotlin.Int) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=POSTFIX_DECR
            $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp3_array type:kotlin.IntArray flags:[val]' type=kotlin.IntArray origin=null
            index: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp4_index0 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
            value: CALL 'FUN IR_EXTERNAL_DECLARATION_STUB name:dec visibility:public modality:FINAL <> ($this:kotlin.Int) returnType:kotlin.Int flags:[]' type=kotlin.Int origin=POSTFIX_DECR
              $this: GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp5 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
          GET_VAR 'VAR IR_TEMPORARY_VARIABLE name:tmp5 type:kotlin.Int flags:[val]' type=kotlin.Int origin=null
