@@ -42,11 +42,9 @@ newtype TApplicationModeEndpoint =
4242 * An endpoint is a node that is a candidate for modeling.
4343 */
4444abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint {
45- abstract predicate isArgOf ( Call c , int idx ) ;
45+ abstract Call getCall ( ) ;
4646
47- Call getCall ( ) { this .isArgOf ( result , _) }
48-
49- int getArgIndex ( ) { this .isArgOf ( _, result ) }
47+ abstract int getArgIndex ( ) ;
5048
5149 abstract Top asTop ( ) ;
5250
@@ -66,7 +64,9 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument {
6664
6765 ExplicitArgument ( ) { this = TExplicitArgument ( call , arg ) }
6866
69- override predicate isArgOf ( Call c , int idx ) { c = call and this .asTop ( ) = c .getArgument ( idx ) }
67+ override Call getCall ( ) { result = call }
68+
69+ override int getArgIndex ( ) { this .asTop ( ) = call .getArgument ( result ) }
7070
7171 override Top asTop ( ) { result = arg .asExpr ( ) }
7272
@@ -83,9 +83,9 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument {
8383
8484 InstanceArgument ( ) { this = TInstanceArgument ( call , arg ) }
8585
86- override predicate isArgOf ( Call c , int idx ) {
87- c = call and this . asTop ( ) = c . getQualifier ( ) and idx = - 1
88- }
86+ override Call getCall ( ) { result = call }
87+
88+ override int getArgIndex ( ) { result = - 1 }
8989
9090 override Top asTop ( ) { if exists ( arg .asExpr ( ) ) then result = arg .asExpr ( ) else result = call }
9191
@@ -112,7 +112,9 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra
112112
113113 ImplicitVarargsArray ( ) { this = TImplicitVarargsArray ( call , vararg , idx ) }
114114
115- override predicate isArgOf ( Call c , int i ) { c = call and i = idx }
115+ override Call getCall ( ) { result = call }
116+
117+ override int getArgIndex ( ) { result = idx }
116118
117119 override Top asTop ( ) { result = this .getCall ( ) }
118120
@@ -131,7 +133,9 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall {
131133
132134 MethodCall ( ) { this = TMethodCall ( call ) }
133135
134- override predicate isArgOf ( Call c , int idx ) { c = call and idx = - 1 }
136+ override Call getCall ( ) { result = call }
137+
138+ override int getArgIndex ( ) { result = - 1 }
135139
136140 override Top asTop ( ) { result = call }
137141
0 commit comments