@@ -3258,24 +3258,16 @@ class PathNode extends TPathNode {
3258
3258
/** Gets the associated configuration. */
3259
3259
Configuration getConfiguration ( ) { none ( ) }
3260
3260
3261
- private predicate isHidden ( ) {
3262
- hiddenNode ( this .( PathNodeImpl ) .getNodeEx ( ) .asNode ( ) ) and
3263
- not this .isSource ( ) and
3264
- not this instanceof PathNodeSink
3265
- or
3266
- this .( PathNodeImpl ) .getNodeEx ( ) instanceof TNodeImplicitRead
3267
- }
3268
-
3269
3261
private PathNode getASuccessorIfHidden ( ) {
3270
- this .isHidden ( ) and
3262
+ this .( PathNodeImpl ) . isHidden ( ) and
3271
3263
result = this .( PathNodeImpl ) .getASuccessorImpl ( )
3272
3264
}
3273
3265
3274
3266
/** Gets a successor of this node, if any. */
3275
3267
final PathNode getASuccessor ( ) {
3276
3268
result = this .( PathNodeImpl ) .getASuccessorImpl ( ) .getASuccessorIfHidden * ( ) and
3277
- not this .isHidden ( ) and
3278
- not result .isHidden ( )
3269
+ not this .( PathNodeImpl ) . isHidden ( ) and
3270
+ not result .( PathNodeImpl ) . isHidden ( )
3279
3271
}
3280
3272
3281
3273
/** Holds if this node is a source. */
@@ -3287,6 +3279,14 @@ abstract private class PathNodeImpl extends PathNode {
3287
3279
3288
3280
abstract NodeEx getNodeEx ( ) ;
3289
3281
3282
+ predicate isHidden ( ) {
3283
+ hiddenNode ( this .getNodeEx ( ) .asNode ( ) ) and
3284
+ not this .isSource ( ) and
3285
+ not this instanceof PathNodeSink
3286
+ or
3287
+ this .getNodeEx ( ) instanceof TNodeImplicitRead
3288
+ }
3289
+
3290
3290
private string ppAp ( ) {
3291
3291
this instanceof PathNodeSink and result = ""
3292
3292
or
@@ -3674,7 +3674,8 @@ private module Subpaths {
3674
3674
innercc = ret .getCallContext ( ) and
3675
3675
sc = ret .getSummaryCtx ( ) and
3676
3676
ret .getConfiguration ( ) = unbindConf ( getPathNodeConf ( arg ) ) and
3677
- apout = ret .getAp ( )
3677
+ apout = ret .getAp ( ) and
3678
+ not ret .isHidden ( )
3678
3679
)
3679
3680
}
3680
3681
@@ -3695,7 +3696,7 @@ private module Subpaths {
3695
3696
}
3696
3697
3697
3698
/**
3698
- * Holds if `n` can reach `ret` in a summarized subpath.
3699
+ * Holds if `n` can reach a return node in a summarized subpath.
3699
3700
*/
3700
3701
predicate retReach ( PathNode n ) {
3701
3702
subpaths ( _, _, n , _)
0 commit comments