@@ -110,12 +110,15 @@ predicate sourceModel(
110110 string package , string type , boolean subtypes , string name , string signature , string ext ,
111111 string output , string kind , string provenance , QlBuiltins:: ExtensionId madId
112112) {
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+ )
119122}
120123
121124/**
@@ -127,12 +130,15 @@ predicate sinkModel(
127130 string package , string type , boolean subtypes , string name , string signature , string ext ,
128131 string input , string kind , string provenance , QlBuiltins:: ExtensionId madId
129132) {
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+ )
136142}
137143
138144/**
@@ -144,12 +150,15 @@ predicate summaryModel(
144150 string package , string type , boolean subtypes , string name , string signature , string ext ,
145151 string input , string output , string kind , string provenance , QlBuiltins:: ExtensionId madId
146152) {
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+ )
153162}
154163
155164/**
@@ -160,10 +169,12 @@ predicate summaryModel(
160169predicate neutralModel (
161170 string package , string type , string name , string signature , string kind , string provenance
162171) {
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+ )
167178}
168179
169180/**
0 commit comments