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

