@@ -78,6 +78,7 @@ private import internal.DataFlowPrivate
78
78
private import internal.FlowSummaryImpl:: Private:: External
79
79
private import internal.FlowSummaryImplSpecific as FlowSummaryImplSpecific
80
80
private import internal.AccessPathSyntax
81
+ private import ExternalFlowExtensions as Extensions
81
82
private import FlowSummary
82
83
83
84
/**
@@ -128,33 +129,6 @@ private predicate summaryModelInternal(string row) { any(SummaryModelCsvInternal
128
129
129
130
private predicate sinkModelInternal ( string row ) { any ( SinkModelCsvInternal s ) .row ( row ) }
130
131
131
- /**
132
- * Holds if an experimental source model exists for the given parameters.
133
- * This is only for experimental queries.
134
- */
135
- extensible predicate extExperimentalSourceModel (
136
- string package , string type , boolean subtypes , string name , string signature , string ext ,
137
- string output , string kind , string provenance , string filter
138
- ) ;
139
-
140
- /**
141
- * Holds if an experimental sink model exists for the given parameters.
142
- * This is only for experimental queries.
143
- */
144
- extensible predicate extExperimentalSinkModel (
145
- string package , string type , boolean subtypes , string name , string signature , string ext ,
146
- string input , string kind , string provenance , string filter
147
- ) ;
148
-
149
- /**
150
- * Holds if an experimental summary model exists for the given parameters.
151
- * This is only for experimental queries.
152
- */
153
- extensible predicate extExperimentalSummaryModel (
154
- string package , string type , boolean subtypes , string name , string signature , string ext ,
155
- string input , string output , string kind , string provenance , string filter
156
- ) ;
157
-
158
132
/**
159
133
* A class for activating additional model rows.
160
134
*
@@ -172,7 +146,7 @@ abstract class ActiveExperimentalModels extends string {
172
146
string package , string type , boolean subtypes , string name , string signature , string ext ,
173
147
string output , string kind , string provenance
174
148
) {
175
- extExperimentalSourceModel ( package , type , subtypes , name , signature , ext , output , kind ,
149
+ Extensions :: experimentalSourceModel ( package , type , subtypes , name , signature , ext , output , kind ,
176
150
provenance , this )
177
151
}
178
152
@@ -183,7 +157,7 @@ abstract class ActiveExperimentalModels extends string {
183
157
string package , string type , boolean subtypes , string name , string signature , string ext ,
184
158
string output , string kind , string provenance
185
159
) {
186
- extExperimentalSinkModel ( package , type , subtypes , name , signature , ext , output , kind ,
160
+ Extensions :: experimentalSinkModel ( package , type , subtypes , name , signature , ext , output , kind ,
187
161
provenance , this )
188
162
}
189
163
@@ -194,19 +168,11 @@ abstract class ActiveExperimentalModels extends string {
194
168
string package , string type , boolean subtypes , string name , string signature , string ext ,
195
169
string input , string output , string kind , string provenance
196
170
) {
197
- extExperimentalSummaryModel ( package , type , subtypes , name , signature , ext , input , output , kind ,
198
- provenance , this )
171
+ Extensions :: experimentalSummaryModel ( package , type , subtypes , name , signature , ext , input ,
172
+ output , kind , provenance , this )
199
173
}
200
174
}
201
175
202
- /**
203
- * Holds if a source model exists for the given parameters.
204
- */
205
- extensible predicate extSourceModel (
206
- string package , string type , boolean subtypes , string name , string signature , string ext ,
207
- string output , string kind , string provenance
208
- ) ;
209
-
210
176
/** Holds if a source model exists for the given parameters. */
211
177
predicate sourceModel (
212
178
string package , string type , boolean subtypes , string name , string signature , string ext ,
@@ -226,18 +192,12 @@ predicate sourceModel(
226
192
row .splitAt ( ";" , 8 ) = provenance
227
193
)
228
194
or
229
- extSourceModel ( package , type , subtypes , name , signature , ext , output , kind , provenance )
195
+ Extensions :: sourceModel ( package , type , subtypes , name , signature , ext , output , kind , provenance )
230
196
or
231
197
any ( ActiveExperimentalModels q )
232
198
.sourceModel ( package , type , subtypes , name , signature , ext , output , kind , provenance )
233
199
}
234
200
235
- /** Holds if a sink model exists for the given parameters. */
236
- extensible predicate extSinkModel (
237
- string package , string type , boolean subtypes , string name , string signature , string ext ,
238
- string input , string kind , string provenance
239
- ) ;
240
-
241
201
/** Holds if a sink model exists for the given parameters. */
242
202
predicate sinkModel (
243
203
string package , string type , boolean subtypes , string name , string signature , string ext ,
@@ -257,18 +217,12 @@ predicate sinkModel(
257
217
row .splitAt ( ";" , 8 ) = provenance
258
218
)
259
219
or
260
- extSinkModel ( package , type , subtypes , name , signature , ext , input , kind , provenance )
220
+ Extensions :: sinkModel ( package , type , subtypes , name , signature , ext , input , kind , provenance )
261
221
or
262
222
any ( ActiveExperimentalModels q )
263
223
.sinkModel ( package , type , subtypes , name , signature , ext , input , kind , provenance )
264
224
}
265
225
266
- /** Holds if a summary model exists for the given parameters. */
267
- extensible predicate extSummaryModel (
268
- string package , string type , boolean subtypes , string name , string signature , string ext ,
269
- string input , string output , string kind , string provenance
270
- ) ;
271
-
272
226
/** Holds if a summary model exists for the given parameters. */
273
227
predicate summaryModel (
274
228
string package , string type , boolean subtypes , string name , string signature , string ext ,
@@ -289,21 +243,15 @@ predicate summaryModel(
289
243
row .splitAt ( ";" , 9 ) = provenance
290
244
)
291
245
or
292
- extSummaryModel ( package , type , subtypes , name , signature , ext , input , output , kind , provenance )
246
+ Extensions:: summaryModel ( package , type , subtypes , name , signature , ext , input , output , kind ,
247
+ provenance )
293
248
or
294
249
any ( ActiveExperimentalModels q )
295
250
.summaryModel ( package , type , subtypes , name , signature , ext , input , output , kind , provenance )
296
251
}
297
252
298
253
/** Holds if a neutral model exists indicating there is no flow for the given parameters. */
299
- extensible predicate extNeutralModel (
300
- string package , string type , string name , string signature , string provenance
301
- ) ;
302
-
303
- /** Holds if a neutral model exists indicating there is no flow for the given parameters. */
304
- predicate neutralModel ( string package , string type , string name , string signature , string provenance ) {
305
- extNeutralModel ( package , type , name , signature , provenance )
306
- }
254
+ predicate neutralModel = Extensions:: neutralModel / 5 ;
307
255
308
256
private predicate relevantPackage ( string package ) {
309
257
sourceModel ( package , _, _, _, _, _, _, _, _) or
0 commit comments