Interface CompilationStep

All Superinterfaces:
BiFunction<Workspace, CompilerFlags, CompilationPhaseResult>
All Known Implementing Classes:
CodeGenerationAggregates, CodeGenerationApplications, CodeGenerationConstants, CodeGenerationPreparation, CodeOptimisation, CompilerPhase, IRAnalysis, IRGenerator, IROptimisation, ModuleDuplicateSymbolChecks, NonInferredTypeDefinition, Packaging, PackagingPostProcessing, Parsing, PluginLinkage, PluginResolution, PostSymbolResolutionChecks, PreIntermediateRepresentationChecks, ReferenceChecks, SymbolDefinition, SymbolicAnalysis, SymbolResolution, TypeHierarchyChecks

public interface CompilationStep extends BiFunction<Workspace, CompilerFlags, CompilationPhaseResult>
One step of a compilation: it runs exactly ONE CompilationPhase, and says which.

Saying which is what lets the driver (Ek9Compiler) record a phase as entered BEFORE it runs, in one place for every phase (Steve, 2026-10-08, Q11). Until then each phase recorded itself and READING and PARSING never did, so a failure inside either was reported as "during PLUGIN_RESOLUTION" - the last phase the language's own bootstrap recorded.