Skip to content

Commit 77146e4

Browse files
committed
Data flow: Reduce caching
These predicates are now cached in the shared implementation.
1 parent f9eecfb commit 77146e4

1 file changed

Lines changed: 7 additions & 10 deletions

File tree

ql/src/codeql_ruby/dataflow/internal/DataFlowPrivate.qll

Lines changed: 7 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -177,18 +177,17 @@ private module Cached {
177177

178178
cached
179179
newtype TContent = TTodoContent() // stub
180-
181-
/** Holds if `n` should be hidden from path explanations. */
182-
cached
183-
predicate nodeIsHidden(Node n) {
184-
exists(Ssa::Definition def | def = n.(SsaDefinitionNode).getDefinition() |
185-
def instanceof Ssa::PhiNode
186-
)
187-
}
188180
}
189181

190182
import Cached
191183

184+
/** Holds if `n` should be hidden from path explanations. */
185+
predicate nodeIsHidden(Node n) {
186+
exists(Ssa::Definition def | def = n.(SsaDefinitionNode).getDefinition() |
187+
def instanceof Ssa::PhiNode
188+
)
189+
}
190+
192191
/** An SSA definition, viewed as a node in a data flow graph. */
193192
class SsaDefinitionNode extends NodeImpl, TSsaDefinitionNode {
194193
Ssa::Definition def;
@@ -308,7 +307,6 @@ import ParameterNodes
308307
/** A data-flow node that represents a call argument. */
309308
abstract class ArgumentNode extends Node {
310309
/** Holds if this argument occurs at the given position in the given call. */
311-
cached
312310
abstract predicate argumentOf(DataFlowCall call, int pos);
313311

314312
/** Gets the call in which this node is an argument. */
@@ -420,7 +418,6 @@ import ReturnNodes
420418
/** A data-flow node that represents the output of a call. */
421419
abstract class OutNode extends Node {
422420
/** Gets the underlying call, where this node is a corresponding output of kind `kind`. */
423-
cached
424421
abstract DataFlowCall getCall(ReturnKind kind);
425422
}
426423

0 commit comments

Comments
 (0)