Skip to content

Commit 902a585

Browse files
author
Stephan Brandauer
committed
Java: remove isArgOf predicate
1 parent caaf2f8 commit 902a585

File tree

1 file changed

+14
-10
lines changed

1 file changed

+14
-10
lines changed

java/ql/automodel/src/AutomodelApplicationModeCharacteristics.qll

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -42,11 +42,9 @@ newtype TApplicationModeEndpoint =
4242
* An endpoint is a node that is a candidate for modeling.
4343
*/
4444
abstract 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

Comments
 (0)