@@ -307,7 +307,7 @@ module API {
307
307
useRoot ( _, nd )
308
308
or
309
309
exists ( ExprCfgNode node , DataFlow:: LocalSourceNode pred |
310
- pred = pruneUseNodeFwd ( ) and
310
+ pred = useCandFwd ( ) and
311
311
pred .flowsTo ( any ( DataFlow:: ExprNode n | n .getExprNode ( ) = node ) ) and
312
312
useStep ( _, node , nd )
313
313
)
@@ -319,31 +319,29 @@ module API {
319
319
cached
320
320
predicate use ( TApiNode nd , DataFlow:: Node ref ) { nd = MkUse ( ref ) }
321
321
322
- private DataFlow:: LocalSourceNode pruneUseNodeFwd ( TypeTracker t ) {
322
+ private DataFlow:: LocalSourceNode useCandFwd ( TypeTracker t ) {
323
323
t .start ( ) and
324
324
isUse ( result )
325
325
or
326
- exists ( TypeTracker t2 | result = pruneUseNodeFwd ( t2 ) .track ( t2 , t ) )
326
+ exists ( TypeTracker t2 | result = useCandFwd ( t2 ) .track ( t2 , t ) )
327
327
}
328
328
329
- private DataFlow:: LocalSourceNode pruneUseNodeFwd ( ) {
330
- result = pruneUseNodeFwd ( TypeTracker:: end ( ) )
331
- }
329
+ private DataFlow:: LocalSourceNode useCandFwd ( ) { result = useCandFwd ( TypeTracker:: end ( ) ) }
332
330
333
- private DataFlow:: Node pruneUseNodeRev ( TypeBackTracker tb ) {
334
- result = pruneUseNodeFwd ( ) and
331
+ private DataFlow:: Node useCandRev ( TypeBackTracker tb ) {
332
+ result = useCandFwd ( ) and
335
333
tb .start ( )
336
334
or
337
335
exists ( TypeBackTracker tb2 , DataFlow:: LocalSourceNode mid , TypeTracker t |
338
- mid = pruneUseNodeRev ( tb2 ) and
336
+ mid = useCandRev ( tb2 ) and
339
337
result = mid .backtrack ( tb2 , tb ) and
340
- pragma [ only_bind_out ] ( result ) = pruneUseNodeFwd ( t ) and
338
+ pragma [ only_bind_out ] ( result ) = useCandFwd ( t ) and
341
339
pragma [ only_bind_out ] ( t ) = pragma [ only_bind_out ] ( tb ) .getACompatibleTypeTracker ( )
342
340
)
343
341
}
344
342
345
- private DataFlow:: LocalSourceNode pruneUseNodeRev ( ) {
346
- result = pruneUseNodeRev ( TypeBackTracker:: end ( ) ) and
343
+ private DataFlow:: LocalSourceNode useCandRev ( ) {
344
+ result = useCandRev ( TypeBackTracker:: end ( ) ) and
347
345
isUse ( result )
348
346
}
349
347
@@ -354,13 +352,13 @@ module API {
354
352
*/
355
353
private DataFlow:: Node trackUseNode ( DataFlow:: LocalSourceNode src , TypeTracker t ) {
356
354
result = src and
357
- result = pruneUseNodeRev ( ) and
355
+ result = useCandRev ( ) and
358
356
t .start ( )
359
357
or
360
358
exists ( TypeTracker t2 , DataFlow:: LocalSourceNode mid , TypeBackTracker tb |
361
359
mid = trackUseNode ( src , t2 ) and
362
360
result = mid .track ( t2 , t ) and
363
- pragma [ only_bind_out ] ( result ) = pruneUseNodeRev ( tb ) and
361
+ pragma [ only_bind_out ] ( result ) = useCandRev ( tb ) and
364
362
pragma [ only_bind_out ] ( t ) = pragma [ only_bind_out ] ( tb ) .getACompatibleTypeTracker ( )
365
363
)
366
364
}
0 commit comments