@@ -3931,15 +3931,15 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
3931
3931
private module Stage4Param implements MkStage< Stage3 > :: StageParam {
3932
3932
private module PrevStage = Stage3;
3933
3933
3934
- class Typ = DataFlowType ;
3934
+ class Typ = Unit ;
3935
3935
3936
3936
class Ap = AccessPathFront ;
3937
3937
3938
3938
class ApNil = AccessPathFrontNil ;
3939
3939
3940
3940
PrevStage:: Ap getApprox ( Ap ap ) { result = ap .toApprox ( ) }
3941
3941
3942
- Typ getTyp ( DataFlowType t ) { result = t }
3942
+ Typ getTyp ( DataFlowType t ) { any ( ) }
3943
3943
3944
3944
bindingset [ c, tail]
3945
3945
Ap apCons ( Content c , Ap tail ) { result .getHead ( ) = c and exists ( tail ) }
@@ -3964,9 +3964,10 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
3964
3964
NodeEx node1 , FlowState state1 , NodeEx node2 , FlowState state2 , boolean preservesValue ,
3965
3965
Typ t , LocalCc lcc , string label
3966
3966
) {
3967
- Stage3Param:: localFlowBigStep ( node1 , state1 , node2 , state2 , preservesValue , t , _, label ) and
3967
+ Stage3Param:: localFlowBigStep ( node1 , state1 , node2 , state2 , preservesValue , _ , _, label ) and
3968
3968
PrevStage:: revFlow ( node1 , pragma [ only_bind_into ] ( state1 ) , _) and
3969
3969
PrevStage:: revFlow ( node2 , pragma [ only_bind_into ] ( state2 ) , _) and
3970
+ exists ( t ) and
3970
3971
exists ( lcc )
3971
3972
}
3972
3973
@@ -4015,7 +4016,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
4015
4016
predicate filter ( NodeEx node , FlowState state , Typ t0 , Ap ap , Typ t ) {
4016
4017
exists ( state ) and
4017
4018
not clear ( node , ap ) and
4018
- strengthenType ( node , t0 , t ) and
4019
+ t0 = t and
4019
4020
(
4020
4021
notExpectsContent ( node )
4021
4022
or
@@ -4029,7 +4030,7 @@ module MakeImpl<LocationSig Location, InputSig<Location> Lang> {
4029
4030
}
4030
4031
4031
4032
bindingset [ t1, t2]
4032
- predicate typecheck ( Typ t1 , Typ t2 ) { compatibleTypesFilter ( t1 , t2 ) }
4033
+ predicate typecheck ( Typ t1 , Typ t2 ) { any ( ) }
4033
4034
}
4034
4035
4035
4036
private module Stage4 = MkStage< Stage3 > :: Stage< Stage4Param > ;
0 commit comments