@@ -344,7 +344,7 @@ module TypeTracking<TypeTrackingInput I> {
344344 }
345345
346346 pragma [ nomagic]
347- private predicate storeStepIntoSource ( Node nodeFrom , Node nodeTo , Content f ) {
347+ private predicate storeStepIntoSource ( Node nodeFrom , LocalSourceNode nodeTo , Content f ) {
348348 if hasFeatureBacktrackStoreTarget ( )
349349 then
350350 exists ( Node obj |
@@ -355,7 +355,9 @@ module TypeTracking<TypeTrackingInput I> {
355355 }
356356
357357 pragma [ nomagic]
358- private predicate loadStoreStepIntoSource ( Node nodeFrom , Node nodeTo , Content f1 , Content f2 ) {
358+ private predicate loadStoreStepIntoSource (
359+ Node nodeFrom , LocalSourceNode nodeTo , Content f1 , Content f2
360+ ) {
359361 if hasFeatureBacktrackStoreTarget ( )
360362 then
361363 exists ( Node obj |
@@ -366,7 +368,7 @@ module TypeTracking<TypeTrackingInput I> {
366368 }
367369
368370 pragma [ nomagic]
369- private predicate smallStepNoCall ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
371+ private predicate smallStepNoCall ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
370372 levelStepNoCall ( nodeFrom , nodeTo ) and summary = LevelStep ( )
371373 or
372374 exists ( Content content |
@@ -398,7 +400,7 @@ module TypeTracking<TypeTrackingInput I> {
398400 }
399401
400402 pragma [ nomagic]
401- private predicate smallStepCall ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
403+ private predicate smallStepCall ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
402404 levelStepCall ( nodeFrom , nodeTo ) and summary = LevelStep ( )
403405 or
404406 callStep ( nodeFrom , nodeTo ) and summary = CallStep ( )
@@ -407,32 +409,32 @@ module TypeTracking<TypeTrackingInput I> {
407409 }
408410
409411 pragma [ nomagic]
410- private predicate stepNoCall ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
412+ private predicate stepNoCall ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
411413 exists ( Node mid | flowsTo ( nodeFrom , mid ) and smallStepNoCall ( mid , nodeTo , summary ) )
412414 }
413415
414416 pragma [ nomagic]
415- private predicate stepCall ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
417+ private predicate stepCall ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
416418 exists ( Node mid | flowsTo ( nodeFrom , mid ) and smallStepCall ( mid , nodeTo , summary ) )
417419 }
418420
419421 pragma [ inline]
420- private predicate smallStepSplit ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
422+ private predicate smallStepSplit ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
421423 smallStepCall ( nodeFrom , nodeTo , summary ) or smallStepNoCall ( nodeFrom , nodeTo , summary )
422424 }
423425
424426 pragma [ inline]
425- private predicate stepSplit ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
427+ private predicate stepSplit ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
426428 stepNoCall ( nodeFrom , nodeTo , summary ) or stepCall ( nodeFrom , nodeTo , summary )
427429 }
428430
429431 pragma [ nomagic]
430- private predicate smallStep ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
432+ private predicate smallStep ( Node nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
431433 smallStepSplit ( nodeFrom , nodeTo , summary )
432434 }
433435
434436 pragma [ nomagic]
435- private predicate step ( Node nodeFrom , Node nodeTo , StepSummary summary ) {
437+ private predicate step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo , StepSummary summary ) {
436438 stepSplit ( nodeFrom , nodeTo , summary )
437439 }
438440
@@ -528,7 +530,7 @@ module TypeTracking<TypeTrackingInput I> {
528530 * heap and/or inter-procedural step from `nodeFrom` to `nodeTo`.
529531 */
530532 bindingset [ nodeFrom, this ]
531- TypeTracker step ( Node nodeFrom , Node nodeTo ) {
533+ TypeTracker step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo ) {
532534 exists ( StepSummary summary |
533535 step ( pragma [ only_bind_out ] ( nodeFrom ) , _, pragma [ only_bind_into ] ( summary ) ) and
534536 result = pragma [ only_bind_into ] ( pragma [ only_bind_out ] ( this ) ) .append ( summary ) and
@@ -655,7 +657,7 @@ module TypeTracking<TypeTrackingInput I> {
655657 * heap and/or inter-procedural step from `nodeTo` to `nodeFrom`.
656658 */
657659 bindingset [ nodeTo, this ]
658- TypeBackTracker step ( Node nodeFrom , Node nodeTo ) {
660+ TypeBackTracker step ( LocalSourceNode nodeFrom , LocalSourceNode nodeTo ) {
659661 exists ( StepSummary summary |
660662 step ( _, pragma [ only_bind_out ] ( nodeTo ) , pragma [ only_bind_into ] ( summary ) ) and
661663 result = pragma [ only_bind_into ] ( pragma [ only_bind_out ] ( this ) ) .prepend ( summary ) and
0 commit comments