@@ -63,7 +63,7 @@ class AssignExpr extends Assignment, @simple_assign_expr {
6363 * (`AssignArithmeticOperation`), a bitwise assignment operation or
6464 * (`AssignBitwiseOperation`).
6565 */
66- class AssignOperation extends Assignment , OperatorCall , @assign_op_expr {
66+ class AssignOperation extends Assignment , @assign_op_expr {
6767 override string getOperator ( ) { none ( ) }
6868
6969 /**
@@ -79,14 +79,21 @@ class AssignOperation extends Assignment, OperatorCall, @assign_op_expr {
7979 override string toString ( ) { result = "... " + this .getOperator ( ) + " ..." }
8080}
8181
82+ /**
83+ * An assignment operation that corresponds to an operator call, for example `x += y` corresponds to `x = x + y`.
84+ */
85+ class AssignCompoundOperation extends AssignOperation , OperatorCall , @assign_op_call_expr {
86+ override string toString ( ) { result = "... " + this .getOperator ( ) + " ..." }
87+ }
88+
8289/**
8390 * An arithmetic assignment operation. Either an addition assignment operation
8491 * (`AssignAddExpr`), a subtraction assignment operation (`AssignSubExpr`), a
8592 * multiplication assignment operation (`AssignMulExpr`), a division assignment
8693 * operation (`AssignDivExpr`), or a remainder assignment operation
8794 * (`AssignRemExpr`).
8895 */
89- class AssignArithmeticOperation extends AssignOperation , @assign_arith_expr { }
96+ class AssignArithmeticOperation extends AssignCompoundOperation , @assign_arith_expr { }
9097
9198/**
9299 * An addition assignment operation, for example `x += y`.
@@ -142,7 +149,7 @@ class AssignRemExpr extends AssignArithmeticOperation, @assign_rem_expr {
142149 * operation (`AssignRightShiftExpr`), or an unsigned right-shift assignment
143150 * operation (`AssignUnsignedRightShiftExpr`).
144151 */
145- class AssignBitwiseOperation extends AssignOperation , @assign_bitwise_expr { }
152+ class AssignBitwiseOperation extends AssignCompoundOperation , @assign_bitwise_expr { }
146153
147154/**
148155 * A bitwise-and assignment operation, for example `x &= y`.
@@ -207,7 +214,7 @@ deprecated class AssignUnsighedRightShiftExpr = AssignUnsignedRightShiftExpr;
207214 * An event assignment. Either an event addition (`AddEventExpr`) or an event
208215 * removal (`RemoveEventExpr`).
209216 */
210- class AddOrRemoveEventExpr extends Assignment , @assign_event_expr {
217+ class AddOrRemoveEventExpr extends AssignOperation , @assign_event_expr {
211218 override string getOperator ( ) { none ( ) }
212219
213220 /** Gets the event targeted by this event assignment. */
0 commit comments