Package org.ek9lang.compiler.phase4
Class PostSymbolResolutionChecks
java.lang.Object
org.ek9lang.compiler.CompilerPhase
org.ek9lang.compiler.phase4.PostSymbolResolutionChecks
- All Implemented Interfaces:
BiFunction<Workspace,
CompilerFlags, CompilationPhaseResult>
SINGLE THREADED
Once full resolution has completed, additional checks need to be made.
These relate to Generic Types, are assumed operators present on the type arguments.
Are the types used when subtyping constrained generic types appropriate.
But there could be several other post resolution checks if required.
Ideally most checks will have been done as early as possible, but as EK9 is quite
dynamic and has inference it means that not all checks can be completed until now.
It's a bit of brain fuzzer - because it relates to generics and type of types.
This class just deals with traversing the compilable program and all the modules,
then it calls the ParameterisedTypeOrError to check each in turn.
-
Field Summary
Fields inherited from class org.ek9lang.compiler.CompilerPhase
compilableProgramAccess, listener, reporter
-
Constructor Summary
ConstructorDescriptionPostSymbolResolutionChecks
(SharedThreadContext<CompilableProgram> compilableProgramAccess, Consumer<CompilationEvent> listener, CompilerReporter reporter) Create new instance to check everything is logical and cohesive. -
Method Summary
Modifier and TypeMethodDescriptionboolean
doApply
(Workspace workspace, CompilerFlags compilerFlags) Do the compilation phase.Methods inherited from class org.ek9lang.compiler.CompilerPhase
apply
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
Methods inherited from interface java.util.function.BiFunction
andThen
-
Constructor Details
-
Method Details
-
doApply
Description copied from class:CompilerPhase
Do the compilation phase.- Specified by:
doApply
in classCompilerPhase
-