Enum Class CompilationPhase
- All Implemented Interfaces:
Serializable, Comparable<CompilationPhase>, Constable
-
Nested Class Summary
Nested classes/interfaces inherited from class Enum
Enum.EnumDesc<E> -
Enum Constant Summary
Enum ConstantsEnum ConstantDescription -
Field Summary
FieldsModifier and TypeFieldDescriptionstatic final CompilationPhaseThe phase after which the symbol model is complete and must not be mutated. -
Method Summary
Modifier and TypeMethodDescriptionbooleanIs the symbol model frozen by the time this phase runs?static CompilationPhaseReturns the enum constant of this class with the specified name.static CompilationPhase[]values()Returns an array containing the constants of this enum class, in the order they are declared.
-
Enum Constant Details
-
READING
-
PARSING
-
SYMBOL_DEFINITION
-
DUPLICATION_CHECK
-
REFERENCE_CHECKS
-
EXPLICIT_TYPE_SYMBOL_DEFINITION
-
TYPE_HIERARCHY_CHECKS
-
FULL_RESOLUTION
-
POST_RESOLUTION_CHECKS
-
PRE_IR_CHECKS
-
PLUGIN_RESOLUTION
-
SYMBOLIC_ANALYSIS
-
IR_GENERATION
-
IR_ANALYSIS
-
IR_OPTIMISATION
-
CODE_GENERATION_PREPARATION
-
CODE_GENERATION_CONSTANTS
-
CODE_GENERATION_APPLICATIONS
-
CODE_GENERATION_AGGREGATES
-
CODE_OPTIMISATION
-
PLUGIN_LINKAGE
-
APPLICATION_PACKAGING
-
PACKAGING_POST_PROCESSING
-
-
Field Details
-
MODEL_FREEZE_AFTER
The phase after which the symbol model is complete and must not be mutated.It sits AFTER
PRE_IR_CHECKS, not before it. Phase 5 legitimately records its analysis onto symbols - 41,873putSquirrelledDatawrites from the quality checkers on the test corpus - and it is a CHECKING phase whose job includes recording what it found. Putting it on the frozen side would cost that and buy nothing measurable: that phase is already effectively lock-free (held/wall 0.02). The phases that actually pay - IR generation and code generation - are still covered.
-
-
Method Details
-
values
Returns an array containing the constants of this enum class, in the order they are declared.- Returns:
- an array containing the constants of this enum class, in the order they are declared
-
valueOf
Returns the enum constant of this class with the specified name. The string must match exactly an identifier used to declare an enum constant in this class. (Extraneous whitespace characters are not permitted.)- Parameters:
name- the name of the enum constant to be returned.- Returns:
- the enum constant with the specified name
- Throws:
IllegalArgumentException- if this enum class has no constant with the specified nameNullPointerException- if the argument is null
-
getDescription
-
isModelFrozen
public boolean isModelFrozen()Is the symbol model frozen by the time this phase runs?This is a STATIC property of where a phase sits in the pipeline, not runtime state - which is the point. A post-freeze phase reads a model nobody is writing to, so it needs no lock and no synchronisation, and every one of its threads can read concurrently. Deriving that from the enum rather than from a mutable flag means there is no window in which the answer is wrong, and nothing to set, clear or forget.
- Returns:
- true if the model is complete and read-only for the duration of this phase.
-