@@ -73,6 +73,19 @@ class DispatchCall extends Internal::TDispatchCall {
7373 }
7474}
7575
76+ abstract private class InstanceOperatorCall extends OperatorCall {
77+ abstract Expr getQualifier ( ) ;
78+ }
79+
80+ private class InstanceCompoundAssignment extends InstanceOperatorCall instanceof CompoundAssignmentOperatorCall
81+ {
82+ override Expr getQualifier ( ) { result = CompoundAssignmentOperatorCall .super .getQualifier ( ) }
83+ }
84+
85+ private class InstanceMutator extends InstanceOperatorCall instanceof InstanceMutatorOperatorCall {
86+ override Expr getQualifier ( ) { result = InstanceMutatorOperatorCall .super .getQualifier ( ) }
87+ }
88+
7689/** Internal implementation details. */
7790private module Internal {
7891 private import OverridableCallable
@@ -101,9 +114,9 @@ private module Internal {
101114 } or
102115 TDispatchOperatorCall ( OperatorCall oc ) {
103116 not oc .isLateBound ( ) and
104- not oc instanceof CompoundAssignmentOperatorCall
117+ not oc instanceof InstanceOperatorCall
105118 } or
106- TDispatchCompoundAssignmentOperatorCall ( CompoundAssignmentOperatorCall caoc ) or
119+ TDispatchInstanceOperatorCall ( InstanceOperatorCall caoc ) or
107120 TDispatchReflectionCall ( MethodCall mc , string name , Expr object , Expr qualifier , int args ) {
108121 isReflectionCall ( mc , name , object , qualifier , args )
109122 } or
@@ -890,12 +903,10 @@ private module Internal {
890903 override Operator getAStaticTarget ( ) { result = this .getCall ( ) .getTarget ( ) }
891904 }
892905
893- private class DispatchCompoundAssignmentOperatorCall extends DispatchOverridableCall ,
894- TDispatchCompoundAssignmentOperatorCall
906+ private class DispatchInstanceOperatorCall extends DispatchOverridableCall ,
907+ TDispatchInstanceOperatorCall
895908 {
896- override CompoundAssignmentOperatorCall getCall ( ) {
897- this = TDispatchCompoundAssignmentOperatorCall ( result )
898- }
909+ override InstanceOperatorCall getCall ( ) { this = TDispatchInstanceOperatorCall ( result ) }
899910
900911 override Expr getArgument ( int i ) { result = this .getCall ( ) .getArgument ( i ) }
901912
0 commit comments