22 * Provides an implementation of global (interprocedural) data flow. This file
33 * re-exports the local (intraprocedural) data flow analysis from
44 * `DataFlowImplSpecific::Public` and adds a global analysis, mainly exposed
5- * through the `Make ` and `MakeWithState ` modules.
5+ * through the `Global ` and `GlobalWithState ` modules.
66 */
77
88private import DataFlowImplCommon
@@ -73,10 +73,10 @@ signature module ConfigSig {
7373 */
7474 default FlowFeature getAFeature ( ) { none ( ) }
7575
76- /** Holds if sources should be grouped in the result of `hasFlowPath `. */
76+ /** Holds if sources should be grouped in the result of `flowPath `. */
7777 default predicate sourceGrouping ( Node source , string sourceGroup ) { none ( ) }
7878
79- /** Holds if sinks should be grouped in the result of `hasFlowPath `. */
79+ /** Holds if sinks should be grouped in the result of `flowPath `. */
8080 default predicate sinkGrouping ( Node sink , string sinkGroup ) { none ( ) }
8181
8282 /**
@@ -166,10 +166,10 @@ signature module StateConfigSig {
166166 */
167167 default FlowFeature getAFeature ( ) { none ( ) }
168168
169- /** Holds if sources should be grouped in the result of `hasFlowPath `. */
169+ /** Holds if sources should be grouped in the result of `flowPath `. */
170170 default predicate sourceGrouping ( Node source , string sourceGroup ) { none ( ) }
171171
172- /** Holds if sinks should be grouped in the result of `hasFlowPath `. */
172+ /** Holds if sinks should be grouped in the result of `flowPath `. */
173173 default predicate sinkGrouping ( Node sink , string sinkGroup ) { none ( ) }
174174
175175 /**
@@ -182,15 +182,15 @@ signature module StateConfigSig {
182182}
183183
184184/**
185- * Gets the exploration limit for `hasPartialFlow ` and `hasPartialFlowRev `
185+ * Gets the exploration limit for `partialFlow ` and `partialFlowRev `
186186 * measured in approximate number of interprocedural steps.
187187 */
188188signature int explorationLimitSig ( ) ;
189189
190190/**
191- * The output of a data flow computation.
191+ * The output of a global data flow computation.
192192 */
193- signature module DataFlowSig {
193+ signature module GlobalFlowSig {
194194 /**
195195 * A `Node` augmented with a call context (except for sinks) and an access path.
196196 * Only those `PathNode`s that are reachable from a source, and which can reach a sink, are generated.
@@ -203,28 +203,28 @@ signature module DataFlowSig {
203203 * The corresponding paths are generated from the end-points and the graph
204204 * included in the module `PathGraph`.
205205 */
206- predicate hasFlowPath ( PathNode source , PathNode sink ) ;
206+ predicate flowPath ( PathNode source , PathNode sink ) ;
207207
208208 /**
209209 * Holds if data can flow from `source` to `sink`.
210210 */
211- predicate hasFlow ( Node source , Node sink ) ;
211+ predicate flow ( Node source , Node sink ) ;
212212
213213 /**
214214 * Holds if data can flow from some source to `sink`.
215215 */
216- predicate hasFlowTo ( Node sink ) ;
216+ predicate flowTo ( Node sink ) ;
217217
218218 /**
219219 * Holds if data can flow from some source to `sink`.
220220 */
221- predicate hasFlowToExpr ( DataFlowExpr sink ) ;
221+ predicate flowToExpr ( DataFlowExpr sink ) ;
222222}
223223
224224/**
225- * Constructs a standard data flow computation.
225+ * Constructs a global data flow computation.
226226 */
227- module Make < ConfigSig Config> implements DataFlowSig {
227+ module Global < ConfigSig Config> implements GlobalFlowSig {
228228 private module C implements FullStateConfigSig {
229229 import DefaultState< Config >
230230 import Config
@@ -233,17 +233,27 @@ module Make<ConfigSig Config> implements DataFlowSig {
233233 import Impl< C >
234234}
235235
236+ /** DEPRECATED: Use `Global` instead. */
237+ deprecated module Make< ConfigSig Config> implements GlobalFlowSig {
238+ import Global< Config >
239+ }
240+
236241/**
237- * Constructs a data flow computation using flow state.
242+ * Constructs a global data flow computation using flow state.
238243 */
239- module MakeWithState < StateConfigSig Config> implements DataFlowSig {
244+ module GlobalWithState < StateConfigSig Config> implements GlobalFlowSig {
240245 private module C implements FullStateConfigSig {
241246 import Config
242247 }
243248
244249 import Impl< C >
245250}
246251
252+ /** DEPRECATED: Use `GlobalWithState` instead. */
253+ deprecated module MakeWithState< StateConfigSig Config> implements GlobalFlowSig {
254+ import GlobalWithState< Config >
255+ }
256+
247257signature class PathNodeSig {
248258 /** Gets a textual representation of this element. */
249259 string toString ( ) ;
0 commit comments