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

Module TypeTracking

Given a set of step relations, this module provides classes and predicates for simple data-flow reachability suitable for tracking types.

The constructed module contains both public and internal logic; the public interface is exposed via codeql.typetracking.TypeTracking.

Import path

import codeql.typetracking.internal.TypeTrackingImpl

Imports

Predicates

flowsTo

Holds if there is flow from localSource to dst using zero or more simpleLocalSmallSteps.

noContentTypeTracker
smallStep
step

Classes

StepSummary

A description of a step on an inter-procedural data flow path.

TypeBackTracker

A summary of the steps needed to back-track a use of a value to a given dataflow node.

TypeTracker

A summary of the steps needed to track a value to a given dataflow node.

Modules

CallGraphConstruction

Provides logic for constructing a call graph in mutual recursion with type tracking.

ConsistencyChecks

Provides consistency checks for the type-tracker step relations.

TypeBackTracker

Provides predicates for implementing custom TypeBackTrackers.

TypeTrack

Given a source definition, constructs the default forward type tracking from those sources.

TypeTracker

Provides predicates for implementing custom TypeTrackers.

Predicate signatures

Module signatures

Parameters