@@ -1722,11 +1722,6 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
1722
1722
if ap instanceof ApNil then emptyAp = true else emptyAp = false
1723
1723
}
1724
1724
1725
- bindingset [ call, c, p, apa]
1726
- private signature predicate callRestrictionSig (
1727
- DataFlowCall call , DataFlowCallable c , ParamNodeEx p , ApApprox apa , boolean emptyAp
1728
- ) ;
1729
-
1730
1725
private signature predicate flowThroughSig ( ) ;
1731
1726
1732
1727
/**
@@ -1737,8 +1732,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
1737
1732
* need to record the argument that flows into the parameter.
1738
1733
*
1739
1734
* For flow through, we do need to record the argument, however, we can restrict
1740
- * this to arguments that may actually flow through, using `flowThroughSig`,
1741
- * which reduces the argument-to-parameter fan-in significantly.
1735
+ * this to arguments that may actually flow through, which reduces the
1736
+ * argument-to-parameter fan-in significantly.
1742
1737
*/
1743
1738
private module FwdFlowIn< flowThroughSig / 0 flowThrough> {
1744
1739
pragma [ nomagic]
@@ -1747,14 +1742,14 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
1747
1742
ApApprox apa
1748
1743
) {
1749
1744
exists ( boolean allowsFieldFlow |
1750
- PrevStage:: callEdgeArgParam ( call , c , arg , p , allowsFieldFlow , apa ) and
1751
- if emptyAp = true then apa instanceof PrevStage:: ApNil else any ( )
1745
+ PrevStage:: callEdgeArgParam ( call , c , arg , p , allowsFieldFlow , apa )
1752
1746
|
1753
1747
if
1754
1748
PrevStage:: callMayFlowThroughRev ( call ) and
1755
1749
PrevStage:: parameterMayFlowThrough ( p , apa )
1756
1750
then
1757
1751
emptyAp = true and
1752
+ apa instanceof PrevStage:: ApNil and
1758
1753
flowThrough ( )
1759
1754
or
1760
1755
emptyAp = false and
@@ -1763,7 +1758,8 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
1763
1758
else (
1764
1759
not flowThrough ( ) and
1765
1760
(
1766
- emptyAp = true
1761
+ emptyAp = true and
1762
+ apa instanceof PrevStage:: ApNil
1767
1763
or
1768
1764
emptyAp = false and
1769
1765
allowsFieldFlow = true
0 commit comments