@@ -1201,6 +1201,7 @@ private predicate flowCandFwd(
1201
1201
Configuration config
1202
1202
) {
1203
1203
flowCandFwd0 ( node , fromArg , argApf , apf , config ) and
1204
+ not apf .isClearedAt ( node ) and
1204
1205
if node instanceof CastingNode
1205
1206
then compatibleTypes ( getErasedNodeTypeBound ( node ) , apf .getType ( ) )
1206
1207
else any ( )
@@ -1219,8 +1220,7 @@ private predicate flowCandFwd0(
1219
1220
or
1220
1221
exists ( Node mid |
1221
1222
flowCandFwd ( mid , fromArg , argApf , apf , config ) and
1222
- localFlowBigStep ( mid , node , true , _, config , _) and
1223
- not apf .isClearedAt ( node )
1223
+ localFlowBigStep ( mid , node , true , _, config , _)
1224
1224
)
1225
1225
or
1226
1226
exists ( Node mid , AccessPathFrontNil nil |
@@ -1233,8 +1233,7 @@ private predicate flowCandFwd0(
1233
1233
nodeCand2 ( node , unbind ( config ) ) and
1234
1234
jumpStep ( mid , node , config ) and
1235
1235
fromArg = false and
1236
- argApf = TAccessPathFrontNone ( ) and
1237
- not apf .isClearedAt ( node )
1236
+ argApf = TAccessPathFrontNone ( )
1238
1237
)
1239
1238
or
1240
1239
exists ( Node mid , AccessPathFrontNil nil |
@@ -1259,8 +1258,7 @@ private predicate flowCandFwd0(
1259
1258
exists ( TypedContent tc |
1260
1259
flowCandFwdRead ( tc , node , fromArg , argApf , config ) and
1261
1260
flowCandFwdConsCand ( tc , apf , config ) and
1262
- nodeCand2 ( node , _, _, unbindBool ( apf .toBoolNonEmpty ( ) ) , unbind ( config ) ) and
1263
- not apf .isClearedAt ( node )
1261
+ nodeCand2 ( node , _, _, unbindBool ( apf .toBoolNonEmpty ( ) ) , unbind ( config ) )
1264
1262
)
1265
1263
or
1266
1264
// flow into a callable
@@ -1316,8 +1314,7 @@ private predicate flowCandFwdIn(
1316
1314
) {
1317
1315
exists ( ArgumentNode arg , boolean allowsFieldFlow |
1318
1316
flowCandFwd ( arg , fromArg , argApf , apf , config ) and
1319
- flowIntoCallNodeCand2 ( call , arg , p , allowsFieldFlow , config ) and
1320
- not apf .isClearedAt ( p )
1317
+ flowIntoCallNodeCand2 ( call , arg , p , allowsFieldFlow , config )
1321
1318
|
1322
1319
apf instanceof AccessPathFrontNil or allowsFieldFlow = true
1323
1320
)
@@ -1330,8 +1327,7 @@ private predicate flowCandFwdOut(
1330
1327
) {
1331
1328
exists ( ReturnNodeExt ret , boolean allowsFieldFlow |
1332
1329
flowCandFwd ( ret , fromArg , argApf , apf , config ) and
1333
- flowOutOfCallNodeCand2 ( call , ret , node , allowsFieldFlow , config ) and
1334
- not apf .isClearedAt ( node )
1330
+ flowOutOfCallNodeCand2 ( call , ret , node , allowsFieldFlow , config )
1335
1331
|
1336
1332
apf instanceof AccessPathFrontNil or allowsFieldFlow = true
1337
1333
)
0 commit comments