@@ -3936,40 +3936,6 @@ module Impl<FullStateConfigSig Config> {
39363936 }
39373937 }
39383938
3939- private newtype TRevPartialAccessPath =
3940- TRevPartialNil ( ) or
3941- TRevPartialCons ( Content c , int len ) { len in [ 1 .. accessPathLimit ( ) ] }
3942-
3943- /**
3944- * Conceptually a list of `Content`s, but only the first
3945- * element of the list and its length are tracked.
3946- */
3947- private class RevPartialAccessPath extends TRevPartialAccessPath {
3948- abstract string toString ( ) ;
3949-
3950- Content getHead ( ) { this = TRevPartialCons ( result , _) }
3951-
3952- int len ( ) {
3953- this = TRevPartialNil ( ) and result = 0
3954- or
3955- this = TRevPartialCons ( _, result )
3956- }
3957- }
3958-
3959- private class RevPartialAccessPathNil extends RevPartialAccessPath , TRevPartialNil {
3960- override string toString ( ) { result = "" }
3961- }
3962-
3963- private class RevPartialAccessPathCons extends RevPartialAccessPath , TRevPartialCons {
3964- override string toString ( ) {
3965- exists ( Content c , int len | this = TRevPartialCons ( c , len ) |
3966- if len = 1
3967- then result = "[" + c .toString ( ) + "]"
3968- else result = "[" + c .toString ( ) + ", ... (" + len .toString ( ) + ")]"
3969- )
3970- }
3971- }
3972-
39733939 private predicate relevantState ( FlowState state ) {
39743940 sourceNode ( _, state ) or
39753941 sinkNode ( _, state ) or
@@ -4005,7 +3971,7 @@ module Impl<FullStateConfigSig Config> {
40053971
40063972 private newtype TRevSummaryCtx3 =
40073973 TRevSummaryCtx3None ( ) or
4008- TRevSummaryCtx3Some ( RevPartialAccessPath ap )
3974+ TRevSummaryCtx3Some ( PartialAccessPath ap )
40093975
40103976 private newtype TPartialPathNode =
40113977 TPartialPathNodeFwd (
@@ -4027,13 +3993,13 @@ module Impl<FullStateConfigSig Config> {
40273993 } or
40283994 TPartialPathNodeRev (
40293995 NodeEx node , FlowState state , TRevSummaryCtx1 sc1 , TRevSummaryCtx2 sc2 , TRevSummaryCtx3 sc3 ,
4030- RevPartialAccessPath ap
3996+ PartialAccessPath ap
40313997 ) {
40323998 sinkNode ( node , state ) and
40333999 sc1 = TRevSummaryCtx1None ( ) and
40344000 sc2 = TRevSummaryCtx2None ( ) and
40354001 sc3 = TRevSummaryCtx3None ( ) and
4036- ap = TRevPartialNil ( ) and
4002+ ap = TPartialNil ( ) and
40374003 exists ( explorationLimit ( ) )
40384004 or
40394005 revPartialPathStep ( _, node , state , sc1 , sc2 , sc3 , ap ) and
@@ -4208,7 +4174,7 @@ module Impl<FullStateConfigSig Config> {
42084174 TRevSummaryCtx1 sc1 ;
42094175 TRevSummaryCtx2 sc2 ;
42104176 TRevSummaryCtx3 sc3 ;
4211- RevPartialAccessPath ap ;
4177+ PartialAccessPath ap ;
42124178
42134179 PartialPathNodeRev ( ) { this = TPartialPathNodeRev ( node , state , sc1 , sc2 , sc3 , ap ) }
42144180
@@ -4222,7 +4188,7 @@ module Impl<FullStateConfigSig Config> {
42224188
42234189 TRevSummaryCtx3 getSummaryCtx3 ( ) { result = sc3 }
42244190
4225- RevPartialAccessPath getAp ( ) { result = ap }
4191+ PartialAccessPath getAp ( ) { result = ap }
42264192
42274193 override PartialPathNodeRev getASuccessor ( ) {
42284194 revPartialPathStep ( result , this .getNodeEx ( ) , this .getState ( ) , this .getSummaryCtx1 ( ) ,
@@ -4234,7 +4200,7 @@ module Impl<FullStateConfigSig Config> {
42344200 sc1 = TRevSummaryCtx1None ( ) and
42354201 sc2 = TRevSummaryCtx2None ( ) and
42364202 sc3 = TRevSummaryCtx3None ( ) and
4237- ap = TRevPartialNil ( )
4203+ ap = TPartialNil ( )
42384204 }
42394205 }
42404206
@@ -4501,7 +4467,7 @@ module Impl<FullStateConfigSig Config> {
45014467 pragma [ nomagic]
45024468 private predicate revPartialPathStep (
45034469 PartialPathNodeRev mid , NodeEx node , FlowState state , TRevSummaryCtx1 sc1 ,
4504- TRevSummaryCtx2 sc2 , TRevSummaryCtx3 sc3 , RevPartialAccessPath ap
4470+ TRevSummaryCtx2 sc2 , TRevSummaryCtx3 sc3 , PartialAccessPath ap
45054471 ) {
45064472 localFlowStepEx ( node , mid .getNodeEx ( ) ) and
45074473 state = mid .getState ( ) and
@@ -4515,15 +4481,15 @@ module Impl<FullStateConfigSig Config> {
45154481 sc1 = mid .getSummaryCtx1 ( ) and
45164482 sc2 = mid .getSummaryCtx2 ( ) and
45174483 sc3 = mid .getSummaryCtx3 ( ) and
4518- mid .getAp ( ) instanceof RevPartialAccessPathNil and
4519- ap = TRevPartialNil ( )
4484+ mid .getAp ( ) instanceof PartialAccessPathNil and
4485+ ap = TPartialNil ( )
45204486 or
45214487 additionalLocalStateStep ( node , state , mid .getNodeEx ( ) , mid .getState ( ) ) and
45224488 sc1 = mid .getSummaryCtx1 ( ) and
45234489 sc2 = mid .getSummaryCtx2 ( ) and
45244490 sc3 = mid .getSummaryCtx3 ( ) and
4525- mid .getAp ( ) instanceof RevPartialAccessPathNil and
4526- ap = TRevPartialNil ( )
4491+ mid .getAp ( ) instanceof PartialAccessPathNil and
4492+ ap = TPartialNil ( )
45274493 or
45284494 jumpStepEx ( node , mid .getNodeEx ( ) ) and
45294495 state = mid .getState ( ) and
@@ -4537,23 +4503,23 @@ module Impl<FullStateConfigSig Config> {
45374503 sc1 = TRevSummaryCtx1None ( ) and
45384504 sc2 = TRevSummaryCtx2None ( ) and
45394505 sc3 = TRevSummaryCtx3None ( ) and
4540- mid .getAp ( ) instanceof RevPartialAccessPathNil and
4541- ap = TRevPartialNil ( )
4506+ mid .getAp ( ) instanceof PartialAccessPathNil and
4507+ ap = TPartialNil ( )
45424508 or
45434509 additionalJumpStateStep ( node , state , mid .getNodeEx ( ) , mid .getState ( ) ) and
45444510 sc1 = TRevSummaryCtx1None ( ) and
45454511 sc2 = TRevSummaryCtx2None ( ) and
45464512 sc3 = TRevSummaryCtx3None ( ) and
4547- mid .getAp ( ) instanceof RevPartialAccessPathNil and
4548- ap = TRevPartialNil ( )
4513+ mid .getAp ( ) instanceof PartialAccessPathNil and
4514+ ap = TPartialNil ( )
45494515 or
45504516 revPartialPathReadStep ( mid , _, _, node , ap ) and
45514517 state = mid .getState ( ) and
45524518 sc1 = mid .getSummaryCtx1 ( ) and
45534519 sc2 = mid .getSummaryCtx2 ( ) and
45544520 sc3 = mid .getSummaryCtx3 ( )
45554521 or
4556- exists ( RevPartialAccessPath ap0 , Content c |
4522+ exists ( PartialAccessPath ap0 , Content c |
45574523 revPartialPathStoreStep ( mid , ap0 , c , node ) and
45584524 state = mid .getState ( ) and
45594525 sc1 = mid .getSummaryCtx1 ( ) and
@@ -4588,8 +4554,8 @@ module Impl<FullStateConfigSig Config> {
45884554
45894555 pragma [ inline]
45904556 private predicate revPartialPathReadStep (
4591- PartialPathNodeRev mid , RevPartialAccessPath ap1 , Content c , NodeEx node ,
4592- RevPartialAccessPath ap2
4557+ PartialPathNodeRev mid , PartialAccessPath ap1 , Content c , NodeEx node ,
4558+ PartialAccessPath ap2
45934559 ) {
45944560 exists ( NodeEx midNode |
45954561 midNode = mid .getNodeEx ( ) and
@@ -4601,13 +4567,13 @@ module Impl<FullStateConfigSig Config> {
46014567 }
46024568
46034569 pragma [ nomagic]
4604- private predicate apConsRev ( RevPartialAccessPath ap1 , Content c , RevPartialAccessPath ap2 ) {
4570+ private predicate apConsRev ( PartialAccessPath ap1 , Content c , PartialAccessPath ap2 ) {
46054571 revPartialPathReadStep ( _, ap1 , c , _, ap2 )
46064572 }
46074573
46084574 pragma [ nomagic]
46094575 private predicate revPartialPathStoreStep (
4610- PartialPathNodeRev mid , RevPartialAccessPath ap , Content c , NodeEx node
4576+ PartialPathNodeRev mid , PartialAccessPath ap , Content c , NodeEx node
46114577 ) {
46124578 exists ( NodeEx midNode |
46134579 midNode = mid .getNodeEx ( ) and
@@ -4620,7 +4586,7 @@ module Impl<FullStateConfigSig Config> {
46204586 pragma [ nomagic]
46214587 private predicate revPartialPathIntoReturn (
46224588 PartialPathNodeRev mid , ReturnPosition pos , FlowState state , TRevSummaryCtx1Some sc1 ,
4623- TRevSummaryCtx2Some sc2 , TRevSummaryCtx3Some sc3 , DataFlowCall call , RevPartialAccessPath ap
4589+ TRevSummaryCtx2Some sc2 , TRevSummaryCtx3Some sc3 , DataFlowCall call , PartialAccessPath ap
46244590 ) {
46254591 exists ( NodeEx out |
46264592 mid .getNodeEx ( ) = out and
@@ -4636,7 +4602,7 @@ module Impl<FullStateConfigSig Config> {
46364602 pragma [ nomagic]
46374603 private predicate revPartialPathFlowsThrough (
46384604 ArgumentPosition apos , FlowState state , TRevSummaryCtx1Some sc1 , TRevSummaryCtx2Some sc2 ,
4639- TRevSummaryCtx3Some sc3 , RevPartialAccessPath ap
4605+ TRevSummaryCtx3Some sc3 , PartialAccessPath ap
46404606 ) {
46414607 exists ( PartialPathNodeRev mid , ParamNodeEx p , ParameterPosition ppos |
46424608 mid .getNodeEx ( ) = p and
@@ -4653,7 +4619,7 @@ module Impl<FullStateConfigSig Config> {
46534619 pragma [ nomagic]
46544620 private predicate revPartialPathThroughCallable0 (
46554621 DataFlowCall call , PartialPathNodeRev mid , ArgumentPosition pos , FlowState state ,
4656- RevPartialAccessPath ap
4622+ PartialAccessPath ap
46574623 ) {
46584624 exists ( TRevSummaryCtx1Some sc1 , TRevSummaryCtx2Some sc2 , TRevSummaryCtx3Some sc3 |
46594625 revPartialPathIntoReturn ( mid , _, _, sc1 , sc2 , sc3 , call , _) and
@@ -4663,7 +4629,7 @@ module Impl<FullStateConfigSig Config> {
46634629
46644630 pragma [ nomagic]
46654631 private predicate revPartialPathThroughCallable (
4666- PartialPathNodeRev mid , ArgNodeEx node , FlowState state , RevPartialAccessPath ap
4632+ PartialPathNodeRev mid , ArgNodeEx node , FlowState state , PartialAccessPath ap
46674633 ) {
46684634 exists ( DataFlowCall call , ArgumentPosition pos |
46694635 revPartialPathThroughCallable0 ( call , mid , pos , state , ap ) and
0 commit comments