Skip to content

Commit bfabfc3

Browse files
committed
Data flow: Add Configuration::includeHiddenNodes()
1 parent 2421076 commit bfabfc3

File tree

1 file changed

+16
-5
lines changed

1 file changed

+16
-5
lines changed

ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll

Lines changed: 16 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,14 @@ abstract class Configuration extends string {
170170
*/
171171
int explorationLimit() { none() }
172172

173+
/**
174+
* Holds if hidden nodes should be included in the data flow graph.
175+
*
176+
* This feature should only be used for debugging or when the data flow graph
177+
* is not visualized (for example in a `path-problem` query).
178+
*/
179+
predicate includeHiddenNodes() { none() }
180+
173181
/**
174182
* Holds if there is a partial data flow path from `source` to `node`. The
175183
* approximate distance between `node` and the closest source is `dist` and
@@ -3815,11 +3823,14 @@ abstract private class PathNodeImpl extends PathNode {
38153823
abstract NodeEx getNodeEx();
38163824

38173825
predicate isHidden() {
3818-
hiddenNode(this.getNodeEx().asNode()) and
3819-
not this.isSource() and
3820-
not this instanceof PathNodeSink
3821-
or
3822-
this.getNodeEx() instanceof TNodeImplicitRead
3826+
not this.getConfiguration().includeHiddenNodes() and
3827+
(
3828+
hiddenNode(this.getNodeEx().asNode()) and
3829+
not this.isSource() and
3830+
not this instanceof PathNodeSink
3831+
or
3832+
this.getNodeEx() instanceof TNodeImplicitRead
3833+
)
38233834
}
38243835

38253836
private string ppAp() {

0 commit comments

Comments
 (0)