Uses of Package
org.ek9lang.compiler.phase5
Packages that use org.ek9lang.compiler.phase5
Package
Description
I - PRE Intermediate Representation generation checks.
Call graph infrastructure for EK9 compiler static analysis.
Contains critical general components used in the
Ek9Compiler listeners.-
Classes in org.ek9lang.compiler.phase5 used by org.ek9lang.compiler.phase5ClassDescriptionDoes checks on the control part of a while loop to see if Optional/Result/Iterator are now safe via method access.Once an expression has been assessed as being simple enough to process, this consumer is called to mark the appropriate symbol(s) used in the expression as safe if the appropriate methods are called.Functional interface to get the appropriate ErrorListener for a ParsedModule.Functional interface to get the appropriate ErrorListener for a ParsedModule.THE record of which constructor parameters a constructor KEEPS as a closeable property, and the deferred verdict on every construction that hands such a parameter a value that is not new (R4 of the fresh-store rule, E81062).Tracks cognitive complexity within functions/methods/operators.Tracks method-field relationships to calculate LCOM4 (Lack of Cohesion of Methods v4).Designed to give a broad indication of complexity, this is not true pure Cyclometric Complexity.One popped region: its total complexity, and how much of that came from expressions.Finds all concrete (non-abstract) subtypes of a given abstract aggregate type.The per-construct obligation rollup accumulated during the phase-5 walk of one callable body, then squirrelled as
OBLIGATIONS_TOTAL/DISCHARGED/UNDISCHARGEDat construct exit (docs/tooling/EK9_SYMBOLIC_SCANNER_IMPLEMENTATION_SPEC.md §2.1/§2.4).Tracks efferent coupling (Ce) - the number of external types a construct depends on.Tracks function/method/constructor parameter signatures for data clump detection (E11053).An immutable (type, name) pair from a parameter, ordered for deterministic comparison.One callable's parameter signature for data clump analysis.Why an obligation is considered discharged (proven safe) by an existing analysis, orDischargeReason.UNDISCHARGEDwhen no analysis proves it — the discharge-detection order of docs/tooling/EK9_SYMBOLIC_SCANNER_IMPLEMENTATION_SPEC.md §2.3.Tracks complexity of coalescing expression trees with depth-based multiplier.Result of field classification for an aggregate.Tracks injection counts within functions/methods/operators.THE components of an application that sit on a circular injection chain (E08190), asInjectionCycleOrErrorfound them - and THE rule that E08190 suppresses E08200 for them (Steve, 2026-10-11): in a cycle no registration order works, so "reorder registrations" is advice that cannot be followed.A stack of integer counters, one per nested function/method/operator scope, accumulated during AST traversal.Tracks literal occurrences across files for repeated magic literal detection (E11065).One recorded occurrence of a literal.Tracks module-level cohesion by recording constructs and their intra-module type references.Tracks module-level efferent coupling (Ce) - the number of distinct external modules that a module depends on.What PRE_IR_CHECKS needs, collected during Walk 1 (byPreIRListener, every source in parallel), to decide the E08090 verdicts FULL_RESOLUTION deferred (item 5): every local markedNOT_REFERENCED_DEFERRED- initialised by a call, afterwards only mutated in place, never read - with the expression it was initialised by (MutatedOnlyVariableOrError); every user method, operator, function and dynamic function with a returning variable, with each expression that variable is made to REFER to (its initialiser, every pointer assignment (pre-flows included), and through an arm-shaped value the returning variable it yields), soReceiverInteriorReturnscan derive whether a method returns (part of) its receiver andCloseableReturnOrErrorcan require a closeable return to be new - both readingReturnSourceKind. Shared across the parallel walk, so the queues are concurrent; the per-source state is in aMutatedOnlyVariables.Collector.One source's collection.A deferred local and the expression it was initialised by.A user method, operator, function or dynamic function with a returning variable, and every expression that variable is made to refer to.Tracks nesting depth within functions/methods/operators.A single contract/partiality obligation found in a construct body, tagged with the analysis (if any) that discharges it (docs/tooling/EK9_SYMBOLIC_SCANNER_IMPLEMENTATION_SPEC.md §2.1).The taxonomy of contract/partiality obligations the census counts, from what already exists in the language and analysis (docs/tooling/EK9_SYMBOLIC_SCANNER_IMPLEMENTATION_SPEC.md §2.2).Used as a base for a range of constructs that can be expressions.THE property-type graph: which types an object of a given type can reach through its properties.The three kinds of node - see the class javadoc.One node, keyed by kind and fully qualified type name (value equality, as the shared Tarjan requires).The size of the part of the graph that was reached - what the linearity test asserts on.The two whole-program facts the graph needs: the concrete subtypes of a type, and every aggregate.THE classification of what a callable's returning variable is made to refer to - one of theMutatedOnlyVariables.ReturningCallable.sources()collected in Walk 1.Marks specific types of variable of specific types (generic Result/Option) in a manner that enables the compiler to check if access to certain methods is safe.Tests specific types of variable of specific types (generic Result/Option) in a manner that enables the compiler to check if access to certain methods is safe.Tracks statement counts within functions/methods/operators.THE phase-5 reading of a STORE: a statement that makes a variable, property or returning variable refer to the value an expression evaluates to.Result of analyzing trait implementation for potential missing 'by' delegation. -
Classes in org.ek9lang.compiler.phase5 used by org.ek9lang.compiler.phase5.callgraphClassDescriptionFinds all concrete (non-abstract) subtypes of a given abstract aggregate type.
-
Classes in org.ek9lang.compiler.phase5 used by org.ek9lang.compiler.supportClassDescriptionFinds all concrete (non-abstract) subtypes of a given abstract aggregate type.