@@ -42,11 +42,9 @@ newtype TApplicationModeEndpoint =
42
42
* An endpoint is a node that is a candidate for modeling.
43
43
*/
44
44
abstract private class ApplicationModeEndpoint extends TApplicationModeEndpoint {
45
- abstract predicate isArgOf ( Call c , int idx ) ;
45
+ abstract Call getCall ( ) ;
46
46
47
- Call getCall ( ) { this .isArgOf ( result , _) }
48
-
49
- int getArgIndex ( ) { this .isArgOf ( _, result ) }
47
+ abstract int getArgIndex ( ) ;
50
48
51
49
abstract Top asTop ( ) ;
52
50
@@ -66,7 +64,9 @@ class ExplicitArgument extends ApplicationModeEndpoint, TExplicitArgument {
66
64
67
65
ExplicitArgument ( ) { this = TExplicitArgument ( call , arg ) }
68
66
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 ) }
70
70
71
71
override Top asTop ( ) { result = arg .asExpr ( ) }
72
72
@@ -83,9 +83,9 @@ class InstanceArgument extends ApplicationModeEndpoint, TInstanceArgument {
83
83
84
84
InstanceArgument ( ) { this = TInstanceArgument ( call , arg ) }
85
85
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 }
89
89
90
90
override Top asTop ( ) { if exists ( arg .asExpr ( ) ) then result = arg .asExpr ( ) else result = call }
91
91
@@ -112,7 +112,9 @@ class ImplicitVarargsArray extends ApplicationModeEndpoint, TImplicitVarargsArra
112
112
113
113
ImplicitVarargsArray ( ) { this = TImplicitVarargsArray ( call , vararg , idx ) }
114
114
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 }
116
118
117
119
override Top asTop ( ) { result = this .getCall ( ) }
118
120
@@ -131,7 +133,9 @@ class MethodCall extends ApplicationModeEndpoint, TMethodCall {
131
133
132
134
MethodCall ( ) { this = TMethodCall ( call ) }
133
135
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 }
135
139
136
140
override Top asTop ( ) { result = call }
137
141
0 commit comments