@@ -2536,7 +2536,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2536
2536
TStagePathNodeSrcGrp ( ) or
2537
2537
TStagePathNodeSinkGrp ( )
2538
2538
2539
- class StagePathNode extends TStagePathNode {
2539
+ class StagePathNodeImpl extends TStagePathNode {
2540
2540
abstract string toString ( ) ;
2541
2541
2542
2542
abstract Location getLocation ( ) ;
@@ -2553,19 +2553,19 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2553
2553
predicate isArbitrarySink ( ) { this instanceof TStagePathNodeSinkGrp }
2554
2554
}
2555
2555
2556
- class StagePathNodeSrcGrp extends StagePathNode , TStagePathNodeSrcGrp {
2556
+ class StagePathNodeSrcGrp extends StagePathNodeImpl , TStagePathNodeSrcGrp {
2557
2557
override string toString ( ) { result = "<any source>" }
2558
2558
2559
2559
override Location getLocation ( ) { result .hasLocationInfo ( "" , 0 , 0 , 0 , 0 ) }
2560
2560
}
2561
2561
2562
- class StagePathNodeSinkGrp extends StagePathNode , TStagePathNodeSinkGrp {
2562
+ class StagePathNodeSinkGrp extends StagePathNodeImpl , TStagePathNodeSinkGrp {
2563
2563
override string toString ( ) { result = "<any sink>" }
2564
2564
2565
2565
override Location getLocation ( ) { result .hasLocationInfo ( "" , 0 , 0 , 0 , 0 ) }
2566
2566
}
2567
2567
2568
- class StagePathNodeMid extends StagePathNode , TStagePathNodeMid {
2568
+ class StagePathNodeMid extends StagePathNodeImpl , TStagePathNodeMid {
2569
2569
NodeEx node ;
2570
2570
FlowState state ;
2571
2571
Cc cc ;
@@ -2646,14 +2646,14 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2646
2646
2647
2647
bindingset [ node, state, cc, summaryCtx, argT, argAp, t, ap]
2648
2648
pragma [ inline_late]
2649
- private StagePathNode mkStagePathNode (
2649
+ private StagePathNodeImpl mkStagePathNode (
2650
2650
NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx , TypOption argT ,
2651
2651
ApOption argAp , Typ t , Ap ap
2652
2652
) {
2653
2653
result = TStagePathNodeMid ( node , state , cc , summaryCtx , argT , argAp , t , ap )
2654
2654
}
2655
2655
2656
- private StagePathNode typeStrengthenToStagePathNode (
2656
+ private StagePathNodeImpl typeStrengthenToStagePathNode (
2657
2657
NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx , TypOption argT ,
2658
2658
ApOption argAp , Typ t0 , Ap ap
2659
2659
) {
@@ -2665,9 +2665,9 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2665
2665
2666
2666
pragma [ nomagic]
2667
2667
private predicate fwdFlowThroughStep1 (
2668
- StagePathNode pn1 , StagePathNode pn2 , StagePathNode pn3 , DataFlowCall call , Cc cc ,
2669
- FlowState state , CcCall ccc , ParamNodeOption summaryCtx , TypOption argT , ApOption argAp ,
2670
- Typ t , Ap ap , ApApprox apa , RetNodeEx ret , ApApprox innerArgApa
2668
+ StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , StagePathNodeImpl pn3 , DataFlowCall call ,
2669
+ Cc cc , FlowState state , CcCall ccc , ParamNodeOption summaryCtx , TypOption argT ,
2670
+ ApOption argAp , Typ t , Ap ap , ApApprox apa , RetNodeEx ret , ApApprox innerArgApa
2671
2671
) {
2672
2672
exists ( FlowState state0 , ArgNodeEx arg , ParamNodeEx p , Typ innerArgT , Ap innerArgAp |
2673
2673
fwdFlowThroughStep0 ( call , arg , cc , state , ccc , summaryCtx , argT , argAp , t , ap , apa ,
@@ -2685,7 +2685,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2685
2685
2686
2686
pragma [ nomagic]
2687
2687
private predicate fwdFlowThroughStep2 (
2688
- StagePathNode pn1 , StagePathNode pn2 , StagePathNode pn3 , NodeEx node , Cc cc ,
2688
+ StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , StagePathNodeImpl pn3 , NodeEx node , Cc cc ,
2689
2689
FlowState state , ParamNodeOption summaryCtx , TypOption argT , ApOption argAp , Typ t ,
2690
2690
Ap ap
2691
2691
) {
@@ -2701,7 +2701,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2701
2701
}
2702
2702
2703
2703
private predicate localStep (
2704
- StagePathNode pn1 , NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx ,
2704
+ StagePathNodeImpl pn1 , NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx ,
2705
2705
TypOption argT , ApOption argAp , Typ t , Ap ap , string label
2706
2706
) {
2707
2707
exists ( NodeEx mid , FlowState state0 , Typ t0 , LocalCc localCc |
@@ -2732,7 +2732,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2732
2732
)
2733
2733
}
2734
2734
2735
- private predicate localStep ( StagePathNode pn1 , StagePathNode pn2 , string label ) {
2735
+ private predicate localStep ( StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , string label ) {
2736
2736
exists (
2737
2737
NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx , TypOption argT ,
2738
2738
ApOption argAp , Typ t0 , Ap ap
@@ -2744,27 +2744,29 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2744
2744
summaryStep ( pn1 , pn2 , label )
2745
2745
}
2746
2746
2747
- private predicate summaryLabel ( StagePathNode pn1 , StagePathNode pn2 , string summaryLabel ) {
2747
+ private predicate summaryLabel (
2748
+ StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , string summaryLabel
2749
+ ) {
2748
2750
pn1 = pn2 and
2749
2751
summaryLabel = "" and
2750
2752
subpaths ( _, pn1 , _, _)
2751
2753
or
2752
- exists ( StagePathNode mid , string l1 , string l2 |
2754
+ exists ( StagePathNodeImpl mid , string l1 , string l2 |
2753
2755
summaryLabel ( pn1 , mid , l1 ) and
2754
2756
localStep ( mid , pn2 , l2 ) and
2755
2757
summaryLabel = mergeLabels ( l1 , l2 )
2756
2758
)
2757
2759
}
2758
2760
2759
- private predicate summaryStep ( StagePathNode arg , StagePathNode out , string label ) {
2760
- exists ( StagePathNode par , StagePathNode ret |
2761
+ private predicate summaryStep ( StagePathNodeImpl arg , StagePathNodeImpl out , string label ) {
2762
+ exists ( StagePathNodeImpl par , StagePathNodeImpl ret |
2761
2763
subpaths ( arg , par , ret , out ) and
2762
2764
summaryLabel ( par , ret , label )
2763
2765
)
2764
2766
}
2765
2767
2766
2768
private predicate nonLocalStep (
2767
- StagePathNode pn1 , NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx ,
2769
+ StagePathNodeImpl pn1 , NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx ,
2768
2770
TypOption argT , ApOption argAp , Typ t , Ap ap , string label
2769
2771
) {
2770
2772
// jump
@@ -2823,7 +2825,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2823
2825
)
2824
2826
}
2825
2827
2826
- private predicate nonLocalStep ( StagePathNode pn1 , StagePathNode pn2 , string label ) {
2828
+ private predicate nonLocalStep ( StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , string label ) {
2827
2829
exists (
2828
2830
NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx , TypOption argT ,
2829
2831
ApOption argAp , Typ t0 , Ap ap
@@ -2834,7 +2836,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2834
2836
}
2835
2837
2836
2838
query predicate subpaths (
2837
- StagePathNode arg , StagePathNode par , StagePathNode ret , StagePathNode out
2839
+ StagePathNodeImpl arg , StagePathNodeImpl par , StagePathNodeImpl ret ,
2840
+ StagePathNodeImpl out
2838
2841
) {
2839
2842
exists (
2840
2843
NodeEx node , FlowState state , Cc cc , ParamNodeOption summaryCtx , TypOption argT ,
@@ -2845,7 +2848,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
2845
2848
)
2846
2849
}
2847
2850
2848
- query predicate edges ( StagePathNode pn1 , StagePathNode pn2 , string key , string val ) {
2851
+ query predicate edges ( StagePathNodeImpl pn1 , StagePathNodeImpl pn2 , string key , string val ) {
2849
2852
key = "provenance" and
2850
2853
(
2851
2854
localStep ( pn1 , pn2 , val )
0 commit comments