CodeQL library for Ruby
codeql/ruby-all 5.1.15 (changelog, source)
Search

Module signature ApiGraphSharedSig

The signature to use when instantiating ApiGraphShared.

The implementor should define a newtype with at least three branches as follows:

newtype TApiNode =
  MkForwardNode(LocalSourceNode node, TypeTracker t) { isReachable(node, t) } or
  MkBackwardNode(LocalSourceNode node, TypeTracker t) { isReachable(node, t) } or
  MkSinkNode(Node node) { ... } or
  ...

The three branches should be exposed through getForwardNode, getBackwardNode, and getSinkNode, respectively.

Import path

import codeql.ruby.typetracking.ApiGraphShared

Predicates

getBackwardNode

Gets the backward node with the given type-tracking state.

getForwardNode

Gets the forward node with the given type-tracking state.

getSinkNode

Gets the sink node corresponding to node.

specificEpsilonEdge

Holds if a language-specific epsilon edge pred -> succ should be generated.

Types

ApiNode

A node in the API graph.