@@ -679,13 +679,13 @@ predicate jumpStepNotSharedWithTypeTracker(Node nodeFrom, Node nodeTo) {
679
679
* no reason to include steps for list content right now.
680
680
*/
681
681
predicate storeStepCommon ( Node nodeFrom , ContentSet c , Node nodeTo ) {
682
- tupleStoreStep ( nodeFrom , c , nodeTo )
682
+ tupleStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
683
683
or
684
- dictStoreStep ( nodeFrom , c , nodeTo )
684
+ dictStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
685
685
or
686
- moreDictStoreSteps ( nodeFrom , c , nodeTo )
686
+ moreDictStoreSteps ( nodeFrom , c . asSingleton ( ) , nodeTo )
687
687
or
688
- iterableUnpackingStoreStep ( nodeFrom , c , nodeTo )
688
+ iterableUnpackingStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
689
689
}
690
690
691
691
/**
@@ -695,26 +695,26 @@ predicate storeStepCommon(Node nodeFrom, ContentSet c, Node nodeTo) {
695
695
predicate storeStep ( Node nodeFrom , ContentSet c , Node nodeTo ) {
696
696
storeStepCommon ( nodeFrom , c , nodeTo )
697
697
or
698
- listStoreStep ( nodeFrom , c , nodeTo )
698
+ listStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
699
699
or
700
- setStoreStep ( nodeFrom , c , nodeTo )
700
+ setStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
701
701
or
702
- attributeStoreStep ( nodeFrom , c , nodeTo )
702
+ attributeStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
703
703
or
704
- matchStoreStep ( nodeFrom , c , nodeTo )
704
+ matchStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
705
705
or
706
- any ( Orm:: AdditionalOrmSteps es ) .storeStep ( nodeFrom , c , nodeTo )
706
+ any ( Orm:: AdditionalOrmSteps es ) .storeStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
707
707
or
708
708
FlowSummaryImpl:: Private:: Steps:: summaryStoreStep ( nodeFrom .( FlowSummaryNode ) .getSummaryNode ( ) , c ,
709
709
nodeTo .( FlowSummaryNode ) .getSummaryNode ( ) )
710
710
or
711
- synthStarArgsElementParameterNodeStoreStep ( nodeFrom , c , nodeTo )
711
+ synthStarArgsElementParameterNodeStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
712
712
or
713
- synthDictSplatArgumentNodeStoreStep ( nodeFrom , c , nodeTo )
713
+ synthDictSplatArgumentNodeStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
714
714
or
715
- yieldStoreStep ( nodeFrom , c , nodeTo )
715
+ yieldStoreStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
716
716
or
717
- VariableCapture:: storeStep ( nodeFrom , c , nodeTo )
717
+ VariableCapture:: storeStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
718
718
}
719
719
720
720
/**
@@ -911,9 +911,9 @@ predicate attributeStoreStep(Node nodeFrom, AttributeContent c, Node nodeTo) {
911
911
* Subset of `readStep` that should be shared with type-tracking.
912
912
*/
913
913
predicate readStepCommon ( Node nodeFrom , ContentSet c , Node nodeTo ) {
914
- subscriptReadStep ( nodeFrom , c , nodeTo )
914
+ subscriptReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
915
915
or
916
- iterableUnpackingReadStep ( nodeFrom , c , nodeTo )
916
+ iterableUnpackingReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
917
917
}
918
918
919
919
/**
@@ -922,18 +922,18 @@ predicate readStepCommon(Node nodeFrom, ContentSet c, Node nodeTo) {
922
922
predicate readStep ( Node nodeFrom , ContentSet c , Node nodeTo ) {
923
923
readStepCommon ( nodeFrom , c , nodeTo )
924
924
or
925
- matchReadStep ( nodeFrom , c , nodeTo )
925
+ matchReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
926
926
or
927
- forReadStep ( nodeFrom , c , nodeTo )
927
+ forReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
928
928
or
929
- attributeReadStep ( nodeFrom , c , nodeTo )
929
+ attributeReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
930
930
or
931
931
FlowSummaryImpl:: Private:: Steps:: summaryReadStep ( nodeFrom .( FlowSummaryNode ) .getSummaryNode ( ) , c ,
932
932
nodeTo .( FlowSummaryNode ) .getSummaryNode ( ) )
933
933
or
934
- synthDictSplatParameterNodeReadStep ( nodeFrom , c , nodeTo )
934
+ synthDictSplatParameterNodeReadStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
935
935
or
936
- VariableCapture:: readStep ( nodeFrom , c , nodeTo )
936
+ VariableCapture:: readStep ( nodeFrom , c . asSingleton ( ) , nodeTo )
937
937
}
938
938
939
939
/** Data flows from a sequence to a subscript of the sequence. */
@@ -995,17 +995,17 @@ predicate attributeReadStep(Node nodeFrom, AttributeContent c, AttrRead nodeTo)
995
995
* in `x.f = newValue`.
996
996
*/
997
997
predicate clearsContent ( Node n , ContentSet c ) {
998
- matchClearStep ( n , c )
998
+ matchClearStep ( n , c . asSingleton ( ) )
999
999
or
1000
- attributeClearStep ( n , c )
1000
+ attributeClearStep ( n , c . asSingleton ( ) )
1001
1001
or
1002
- dictClearStep ( n , c )
1002
+ dictClearStep ( n , c . asSingleton ( ) )
1003
1003
or
1004
1004
FlowSummaryImpl:: Private:: Steps:: summaryClearsContent ( n .( FlowSummaryNode ) .getSummaryNode ( ) , c )
1005
1005
or
1006
- dictSplatParameterNodeClearStep ( n , c )
1006
+ dictSplatParameterNodeClearStep ( n , c . asSingleton ( ) )
1007
1007
or
1008
- VariableCapture:: clearsContent ( n , c )
1008
+ VariableCapture:: clearsContent ( n , c . asSingleton ( ) )
1009
1009
}
1010
1010
1011
1011
/**
0 commit comments