FILE fqName:<root> fileName:/augmentedAssignment2.kt
  CLASS CLASS name:A modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]
    $this: VALUE_PARAMETER INSTANCE_RECEIVER name:<this> type:<root>.A flags:[]
    CONSTRUCTOR visibility:public <> () returnType:<root>.A flags:[primary]
      BLOCK_BODY
        DELEGATING_CONSTRUCTOR_CALL 'CONSTRUCTOR IR_EXTERNAL_DECLARATION_STUB visibility:public <> () returnType:kotlin.Any flags:[primary]'
        INSTANCE_INITIALIZER_CALL classDescriptor='CLASS CLASS name:A modality:FINAL visibility:public flags:[] superTypes:[kotlin.Any]'
    FUN FAKE_OVERRIDE name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:equals visibility:public modality:OPEN <> ($this:kotlin.Any, other:kotlin.Any?) returnType:kotlin.Boolean flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
      VALUE_PARAMETER name:other index:0 type:kotlin.Any? flags:[]
    FUN FAKE_OVERRIDE name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:hashCode visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.Int flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
    FUN FAKE_OVERRIDE name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
      overridden:
        FUN IR_EXTERNAL_DECLARATION_STUB name:toString visibility:public modality:OPEN <> ($this:kotlin.Any) returnType:kotlin.String flags:[]
      $this: VALUE_PARAMETER name:<this> type:kotlin.Any flags:[]
  FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.A flags:[]
    VALUE_PARAMETER name:s index:0 type:kotlin.String flags:[]
    BLOCK_BODY
  FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.A flags:[]
    VALUE_PARAMETER name:s index:0 type:kotlin.String flags:[]
    BLOCK_BODY
  FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.A flags:[]
    VALUE_PARAMETER name:s index:0 type:kotlin.String flags:[]
    BLOCK_BODY
  FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.A flags:[]
    VALUE_PARAMETER name:s index:0 type:kotlin.String flags:[]
    BLOCK_BODY
  FUN name:remAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]
    $receiver: VALUE_PARAMETER name:<this> type:<root>.A flags:[]
    VALUE_PARAMETER name:s index:0 type:kotlin.String flags:[]
    BLOCK_BODY
  PROPERTY name:p visibility:public modality:FINAL flags:[val]
    FIELD PROPERTY_BACKING_FIELD name:p type:<root>.A visibility:public flags:[final,static]
      EXPRESSION_BODY
        CALL 'CONSTRUCTOR visibility:public <> () returnType:<root>.A flags:[primary]' type=<root>.A origin=null
    FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]
      correspondingProperty: PROPERTY name:p visibility:public modality:FINAL flags:[val]
      BLOCK_BODY
        RETURN type=kotlin.Nothing from='FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]'
          GET_FIELD 'FIELD PROPERTY_BACKING_FIELD name:p type:<root>.A visibility:public flags:[final,static]' type=<root>.A origin=null
  FUN name:testVariable visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      VAR name:a type:<root>.A flags:[val]
        CALL 'CONSTRUCTOR visibility:public <> () returnType:<root>.A flags:[primary]' type=<root>.A origin=null
      CALL 'FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PLUSEQ
        $receiver: GET_VAR 'VAR name:a type:<root>.A flags:[val]' type=<root>.A origin=PLUSEQ
        s: CONST String type=kotlin.String value="+="
      CALL 'FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=MINUSEQ
        $receiver: GET_VAR 'VAR name:a type:<root>.A flags:[val]' type=<root>.A origin=MINUSEQ
        s: CONST String type=kotlin.String value="-="
      CALL 'FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=MULTEQ
        $receiver: GET_VAR 'VAR name:a type:<root>.A flags:[val]' type=<root>.A origin=MULTEQ
        s: CONST String type=kotlin.String value="*="
      CALL 'FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=DIVEQ
        $receiver: GET_VAR 'VAR name:a type:<root>.A flags:[val]' type=<root>.A origin=DIVEQ
        s: CONST String type=kotlin.String value="/="
      CALL 'FUN name:remAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PERCEQ
        $receiver: GET_VAR 'VAR name:a type:<root>.A flags:[val]' type=<root>.A origin=PERCEQ
        s: CONST String type=kotlin.String value="*="
  FUN name:testProperty visibility:public modality:FINAL <> () returnType:kotlin.Unit flags:[]
    BLOCK_BODY
      BLOCK type=kotlin.Unit origin=PLUSEQ
        CALL 'FUN name:plusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PLUSEQ
          $receiver: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]' type=<root>.A origin=PLUSEQ
          s: CONST String type=kotlin.String value="+="
      BLOCK type=kotlin.Unit origin=MINUSEQ
        CALL 'FUN name:minusAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=MINUSEQ
          $receiver: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]' type=<root>.A origin=MINUSEQ
          s: CONST String type=kotlin.String value="-="
      BLOCK type=kotlin.Unit origin=MULTEQ
        CALL 'FUN name:timesAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=MULTEQ
          $receiver: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]' type=<root>.A origin=MULTEQ
          s: CONST String type=kotlin.String value="*="
      BLOCK type=kotlin.Unit origin=DIVEQ
        CALL 'FUN name:divAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=DIVEQ
          $receiver: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]' type=<root>.A origin=DIVEQ
          s: CONST String type=kotlin.String value="/="
      BLOCK type=kotlin.Unit origin=PERCEQ
        CALL 'FUN name:remAssign visibility:public modality:FINAL <> ($receiver:<root>.A, s:kotlin.String) returnType:kotlin.Unit flags:[]' type=kotlin.Unit origin=PERCEQ
          $receiver: CALL 'FUN DEFAULT_PROPERTY_ACCESSOR name:<get-p> visibility:public modality:FINAL <> () returnType:<root>.A flags:[]' type=<root>.A origin=PERCEQ
          s: CONST String type=kotlin.String value="%="
