@@ -95,7 +95,7 @@ private import internal.DataFlowPublic
9595private import internal.FlowSummaryImpl:: Public
9696private import internal.FlowSummaryImpl:: Private:: External
9797private import internal.FlowSummaryImplSpecific
98- private import internal.SharedModelValidation
98+ private import codeql.mad.ModelValidation as SharedModelVal
9999
100100/** Holds if a source model exists for the given parameters. */
101101predicate sourceModel = Extensions:: sourceModel / 9 ;
@@ -205,32 +205,20 @@ module ModelValidation {
205205 )
206206 }
207207
208- /** Gets an error message relating to an invalid kind in a model. */
209- private string getInvalidModelKind ( ) {
210- exists ( string kind | summaryModel ( _, _, _, _, _, _, _, _, kind , _) |
211- not kind instanceof ValidSummaryKind and
212- result = "Invalid kind \"" + kind + "\" in summary model."
213- )
214- or
215- exists ( string kind , string msg | sinkModel ( _, _, _, _, _, _, _, kind , _) |
216- not kind instanceof ValidSinkKind and
217- msg = "Invalid kind \"" + kind + "\" in sink model." and
218- // The part of this message that refers to outdated sink kinds can be deleted after June 1st, 2024.
219- if kind instanceof OutdatedSinkKind
220- then result = msg + " " + kind .( OutdatedSinkKind ) .outdatedMessage ( )
221- else result = msg
222- )
223- or
224- exists ( string kind | sourceModel ( _, _, _, _, _, _, _, kind , _) |
225- not kind instanceof ValidSourceKind and
226- result = "Invalid kind \"" + kind + "\" in source model."
227- )
228- or
229- exists ( string kind | neutralModel ( _, _, _, _, kind , _) |
230- not kind instanceof ValidNeutralKind and
231- result = "Invalid kind \"" + kind + "\" in neutral model."
232- )
233- }
208+ /** Holds if a summary model exists for the given `kind`. */
209+ private predicate summaryKind ( string kind ) { summaryModel ( _, _, _, _, _, _, _, _, kind , _) }
210+
211+ /** Holds if a sink model exists for the given `kind`. */
212+ private predicate sinkKind ( string kind ) { sinkModel ( _, _, _, _, _, _, _, kind , _) }
213+
214+ /** Holds if a source model exists for the given `kind`. */
215+ private predicate sourceKind ( string kind ) { sourceModel ( _, _, _, _, _, _, _, kind , _) }
216+
217+ /** Holds if a neutral model exists for the given `kind`. */
218+ private predicate neutralKind ( string kind ) { neutralModel ( _, _, _, _, kind , _) }
219+
220+ private module KindVal =
221+ SharedModelVal:: KindValidation< summaryKind / 1 , sinkKind / 1 , sourceKind / 1 , neutralKind / 1 > ;
234222
235223 private string getInvalidModelSignature ( ) {
236224 exists (
@@ -273,7 +261,7 @@ module ModelValidation {
273261 msg =
274262 [
275263 getInvalidModelSignature ( ) , getInvalidModelInput ( ) , getInvalidModelOutput ( ) ,
276- getInvalidModelKind ( )
264+ KindVal :: getInvalidModelKind ( )
277265 ]
278266 }
279267}
0 commit comments