@@ -193,6 +193,8 @@ module ModelValidation {
193
193
predicate sinkKind ( string kind ) { sinkModel ( _, _, _, _, _, _, _, kind , _, _) }
194
194
195
195
predicate sourceKind ( string kind ) { sourceModel ( _, _, _, _, _, _, _, kind , _, _) }
196
+
197
+ predicate neutralKind ( string kind ) { neutralModel ( _, _, _, _, kind , _) }
196
198
}
197
199
198
200
private module KindVal = SharedModelVal:: KindValidation< KindValConfig > ;
@@ -208,6 +210,10 @@ module ModelValidation {
208
210
or
209
211
summaryModel ( package , type , _, name , signature , ext , _, _, _, provenance , _) and
210
212
pred = "summary"
213
+ or
214
+ neutralModel ( package , type , name , signature , _, provenance ) and
215
+ ext = "" and
216
+ pred = "neutral"
211
217
|
212
218
not package .replaceAll ( "$ANYVERSION" , "" ) .regexpMatch ( "[a-zA-Z0-9_\\./-]*" ) and
213
219
result = "Dubious package \"" + package + "\" in " + pred + " model."
@@ -243,9 +249,13 @@ pragma[nomagic]
243
249
private predicate elementSpec (
244
250
string package , string type , boolean subtypes , string name , string signature , string ext
245
251
) {
246
- sourceModel ( package , type , subtypes , name , signature , ext , _, _, _, _) or
247
- sinkModel ( package , type , subtypes , name , signature , ext , _, _, _, _) or
252
+ sourceModel ( package , type , subtypes , name , signature , ext , _, _, _, _)
253
+ or
254
+ sinkModel ( package , type , subtypes , name , signature , ext , _, _, _, _)
255
+ or
248
256
summaryModel ( package , type , subtypes , name , signature , ext , _, _, _, _, _)
257
+ or
258
+ neutralModel ( package , type , name , signature , _, _) and ext = "" and subtypes = false
249
259
}
250
260
251
261
private string paramsStringPart ( Function f , int i ) {
0 commit comments