Datatype SSA::Internal::TSsaDefinition

A data type representing SSA definitions.

We distinguish five kinds of SSA definitions:

  1. Explicit definitions wrapping a VarDef node in the CFG.
  2. Implicit initializations of locals (including arguments) at the start of a function, which do not correspond directly to CFG nodes.
  3. Pseudo-definitions for captured variables at the beginning of the capturing function as well as after yield expressions and calls.
  4. Phi nodes.
  5. Refinement nodes at points in the CFG where additional information about a variable becomes available, which may constrain the set of its potential values.

SSA definitions are only introduced where necessary. In particular, unreachable code has no SSA definitions associated with it, and neither have dead assignments (that is, assignments whose value is never read).

Known direct subtypes

Branch types

Injectors