@@ -110,12 +110,15 @@ predicate sourceModel(
110
110
string package , string type , boolean subtypes , string name , string signature , string ext ,
111
111
string output , string kind , string provenance , QlBuiltins:: ExtensionId madId
112
112
) {
113
- FlowExtensions:: sourceModel ( package , type , subtypes , name , signature , ext , output , kind ,
114
- provenance , madId )
115
- or
116
- // Also look for models that are defined for a group that `package` is part of.
117
- FlowExtensions:: sourceModel ( getGroup ( package ) , type , subtypes , name , signature , ext , output , kind ,
118
- provenance , madId )
113
+ exists ( string p |
114
+ FlowExtensions:: sourceModel ( p , type , subtypes , name , signature , ext , output , kind , provenance ,
115
+ madId )
116
+ |
117
+ not exists ( string s | p = groupPrefix ( ) + s ) and package = p
118
+ or
119
+ // Also look for models that are defined for a group that `package` is part of.
120
+ p = getGroup ( package )
121
+ )
119
122
}
120
123
121
124
/**
@@ -127,12 +130,15 @@ predicate sinkModel(
127
130
string package , string type , boolean subtypes , string name , string signature , string ext ,
128
131
string input , string kind , string provenance , QlBuiltins:: ExtensionId madId
129
132
) {
130
- FlowExtensions:: sinkModel ( package , type , subtypes , name , signature , ext , input , kind , provenance ,
131
- madId )
132
- or
133
- // Also look for models that are defined for a group that `package` is part of.
134
- FlowExtensions:: sinkModel ( getGroup ( package ) , type , subtypes , name , signature , ext , input , kind ,
135
- provenance , madId )
133
+ exists ( string p |
134
+ FlowExtensions:: sinkModel ( p , type , subtypes , name , signature , ext , input , kind , provenance ,
135
+ madId )
136
+ |
137
+ not exists ( string s | p = groupPrefix ( ) + s ) and package = p
138
+ or
139
+ // Also look for models that are defined for a group that `package` is part of.
140
+ p = getGroup ( package )
141
+ )
136
142
}
137
143
138
144
/**
@@ -144,12 +150,15 @@ predicate summaryModel(
144
150
string package , string type , boolean subtypes , string name , string signature , string ext ,
145
151
string input , string output , string kind , string provenance , QlBuiltins:: ExtensionId madId
146
152
) {
147
- FlowExtensions:: summaryModel ( package , type , subtypes , name , signature , ext , input , output , kind ,
148
- provenance , madId )
149
- or
150
- // Also look for models that are defined for a group that `package` is part of.
151
- FlowExtensions:: summaryModel ( getGroup ( package ) , type , subtypes , name , signature , ext , input ,
152
- output , kind , provenance , madId )
153
+ exists ( string p |
154
+ FlowExtensions:: summaryModel ( p , type , subtypes , name , signature , ext , input , output , kind ,
155
+ provenance , madId )
156
+ |
157
+ not exists ( string s | p = groupPrefix ( ) + s ) and package = p
158
+ or
159
+ // Also look for models that are defined for a group that `package` is part of.
160
+ p = getGroup ( package )
161
+ )
153
162
}
154
163
155
164
/**
@@ -160,10 +169,12 @@ predicate summaryModel(
160
169
predicate neutralModel (
161
170
string package , string type , string name , string signature , string kind , string provenance
162
171
) {
163
- FlowExtensions:: neutralModel ( package , type , name , signature , kind , provenance )
164
- or
165
- // Also look for models that are defined for a group that `package` is part of.
166
- FlowExtensions:: neutralModel ( getGroup ( package ) , type , name , signature , kind , provenance )
172
+ exists ( string p | FlowExtensions:: neutralModel ( p , type , name , signature , kind , provenance ) |
173
+ not exists ( string s | p = groupPrefix ( ) + s ) and package = p
174
+ or
175
+ // Also look for models that are defined for a group that `package` is part of.
176
+ p = getGroup ( package )
177
+ )
167
178
}
168
179
169
180
/**
0 commit comments