@@ -59,7 +59,7 @@ private module Cached {
5959 * Steps contained in this predicate should _not_ depend on the call graph.
6060 */
6161 cached
62- predicate stepNoCall ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
62+ predicate stepNoCall ( TypeTrackingNode nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
6363 exists ( Node mid | nodeFrom .flowsTo ( mid ) and smallstepNoCall ( mid , nodeTo , summary ) )
6464 }
6565
@@ -68,7 +68,7 @@ private module Cached {
6868 * inter-procedural step from `nodeFrom` to `nodeTo`.
6969 */
7070 cached
71- predicate stepCall ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
71+ predicate stepCall ( TypeTrackingNode nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
7272 exists ( Node mid | nodeFrom .flowsTo ( mid ) and smallstepCall ( mid , nodeTo , summary ) )
7373 }
7474}
@@ -96,7 +96,7 @@ class StepSummary extends TStepSummary {
9696}
9797
9898pragma [ noinline]
99- private predicate smallstepNoCall ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
99+ private predicate smallstepNoCall ( Node nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
100100 jumpStep ( nodeFrom , nodeTo ) and
101101 summary = LevelStep ( )
102102 or
@@ -109,7 +109,7 @@ private predicate smallstepNoCall(Node nodeFrom, LocalSourceNode nodeTo, StepSum
109109}
110110
111111pragma [ noinline]
112- private predicate smallstepCall ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
112+ private predicate smallstepCall ( Node nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
113113 callStep ( nodeFrom , nodeTo ) and summary = CallStep ( )
114114 or
115115 returnStep ( nodeFrom , nodeTo ) and
@@ -129,7 +129,7 @@ module StepSummary {
129129 * call graph.
130130 */
131131 pragma [ inline]
132- predicate step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
132+ predicate step ( TypeTrackingNode nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
133133 stepNoCall ( nodeFrom , nodeTo , summary )
134134 or
135135 stepCall ( nodeFrom , nodeTo , summary )
@@ -143,7 +143,7 @@ module StepSummary {
143143 * type-preserving steps.
144144 */
145145 pragma [ inline]
146- predicate smallstep ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
146+ predicate smallstep ( Node nodeFrom , TypeTrackingNode nodeTo , StepSummary summary ) {
147147 smallstepNoCall ( nodeFrom , nodeTo , summary )
148148 or
149149 smallstepCall ( nodeFrom , nodeTo , summary )
@@ -174,7 +174,7 @@ module StepSummary {
174174 * function. This means we will track the fact that `x.attr` can have the type of `y` into the
175175 * assignment to `z` inside `bar`, even though this attribute write happens _after_ `bar` is called.
176176 */
177- predicate localSourceStoreStep ( Node nodeFrom , LocalSourceNode nodeTo , string content ) {
177+ predicate localSourceStoreStep ( Node nodeFrom , TypeTrackingNode nodeTo , string content ) {
178178 exists ( Node obj | nodeTo .flowsTo ( obj ) and basicStoreStep ( nodeFrom , obj , content ) )
179179 }
180180}
@@ -192,7 +192,7 @@ private newtype TTypeTracker = MkTypeTracker(Boolean hasCall, OptionalContentNam
192192 * It is recommended that all uses of this type are written in the following form,
193193 * for tracking some type `myType`:
194194 * ```ql
195- * DataFlow::LocalSourceNode myType(DataFlow::TypeTracker t) {
195+ * DataFlow::TypeTrackingNode myType(DataFlow::TypeTracker t) {
196196 * t.start() and
197197 * result = < source of myType >
198198 * or
@@ -275,7 +275,7 @@ class TypeTracker extends TTypeTracker {
275275 * heap and/or inter-procedural step from `nodeFrom` to `nodeTo`.
276276 */
277277 pragma [ inline]
278- TypeTracker step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo ) {
278+ TypeTracker step ( TypeTrackingNode nodeFrom , TypeTrackingNode nodeTo ) {
279279 exists ( StepSummary summary |
280280 StepSummary:: step ( nodeFrom , pragma [ only_bind_out ] ( nodeTo ) , pragma [ only_bind_into ] ( summary ) ) and
281281 result = this .append ( pragma [ only_bind_into ] ( summary ) )
@@ -342,7 +342,7 @@ private newtype TTypeBackTracker = MkTypeBackTracker(Boolean hasReturn, Optional
342342 * for back-tracking some callback type `myCallback`:
343343 *
344344 * ```ql
345- * DataFlow::LocalSourceNode myCallback(DataFlow::TypeBackTracker t) {
345+ * DataFlow::TypeTrackingNode myCallback(DataFlow::TypeBackTracker t) {
346346 * t.start() and
347347 * result = (< some API call >).getArgument(< n >).getALocalSource()
348348 * or
@@ -351,7 +351,7 @@ private newtype TTypeBackTracker = MkTypeBackTracker(Boolean hasReturn, Optional
351351 * )
352352 * }
353353 *
354- * DataFlow::LocalSourceNode myCallback() { result = myCallback(DataFlow::TypeBackTracker::end()) }
354+ * DataFlow::TypeTrackingNode myCallback() { result = myCallback(DataFlow::TypeBackTracker::end()) }
355355 * ```
356356 *
357357 * Instead of `result = myCallback(t2).backtrack(t2, t)`, you can also use the equivalent
@@ -418,7 +418,7 @@ class TypeBackTracker extends TTypeBackTracker {
418418 * heap and/or inter-procedural step from `nodeTo` to `nodeFrom`.
419419 */
420420 pragma [ inline]
421- TypeBackTracker step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo ) {
421+ TypeBackTracker step ( TypeTrackingNode nodeFrom , TypeTrackingNode nodeTo ) {
422422 exists ( StepSummary summary |
423423 StepSummary:: step ( pragma [ only_bind_out ] ( nodeFrom ) , nodeTo , pragma [ only_bind_into ] ( summary ) ) and
424424 this = result .prepend ( pragma [ only_bind_into ] ( summary ) )
@@ -431,7 +431,7 @@ class TypeBackTracker extends TTypeBackTracker {
431431 *
432432 * Unlike `TypeBackTracker::step`, this predicate exposes all edges
433433 * in the flowgraph, and not just the edges between
434- * `LocalSourceNode `s. It may therefore be less performant.
434+ * `TypeTrackingNode `s. It may therefore be less performant.
435435 *
436436 * Type tracking predicates using small steps typically take the following form:
437437 * ```ql
0 commit comments