Package org.ek9lang.compiler.phase5.flow
package org.ek9lang.compiler.phase5.flow
-
ClassDescriptionRepresents an abstract value in the value-tracking lattice for flow analysis.Represents an unreachable program point — a contradiction in constraints.The value of a Character constant: one Unicode code point (Steve, 2026-11-04), ordered as the runtime orders Characters.Represents a variable known to be a collection or container type with both SET/UNSET and EMPTY/NON-EMPTY state tracked.Result of evaluating a condition against abstract values.Represents a variable known to hold a specific constant value.Immutable constraint state mapping variables to their abstract values.Extracts collection/container state information from constructor calls and literal expressions.Represents a variable known to hold any value except a specific constant.THE join of the value-tracking lattice: the least upper bound of two values at a branch convergence point.THE order of the value-tracking lattice: does one abstract value admit every run-time state another admits?Extracts constant values from EK9 AST literal nodes.Tracks which physical
MutexLockobject(s) a variable may currently refer to at a given program point.THE shared encodings of lock-analysis stable ids - use this, never re-spell asource:line:collocation key or theplaceholder:prefix.THE token-identity rule of aLockIdentityValue: two identity tokens are the same token when they are structurally equalPlaceholderTokens, and otherwise only when they are the same object (==) - anISymbol's structuralequalswould merge two different locks.The relational path condition accumulated along a control-flow path — an orthogonal structure that sits besideConstraintStateand records facts between symbolic term names (e.g.A single relational fact between two term names, e.g.Symbolic identity for aMutexLockparameter whose underlying object is unknown until resolved at a specific call site.Represents a variable known to be within a numeric range [lo, hi].Represents a variable known to be either SET (has a meaningful value) or UNSET (declared but no value).The M3 symbolic dead-branch analyzer: seeds a function's parameters asSymbolicTermValueterms, reads the relational facts off itsrequire/ifnodes into aPathCondition, and reports a branch dead when its accumulated facts are unsatisfiable.The base (pre-branch) path condition and the verdict for the function'sifbranch.Whether a branch is dead (unreachable for every input), and why.A symbolic (named) term in the flow lattice — a fresh, unconstrained parameter or local carried as itself instead of collapsing toTopValue.Represents an unknown value — no information available about the variable.THE answer to "what value does this expression hold here?" for the phase-5 flow checks: a written literal first, else what theValueTrackingAnalyzertracks for the expression's symbol.Tracks variable values through control flow for tautological condition detection.