Class Parameterisations
java.lang.Object
org.ek9lang.compiler.phase5.construction.Parameterisations
Every parameterisation of a generic that exists in the program, so FE77 can apply a generic's construction steps
to each concrete parameterisation and find the concrete type a substituted one names.
Swept across ALL parsed modules: a parameterised type is registered in the scope of whichever file resolved it
first, which need not be the file defining the generic (as GenericInputVarietyWidener found). Nothing is
created here - phase 5 may not add types - so a substitution that FULL_RESOLUTION never made is simply absent,
and the check misses that path rather than guessing.
-
Method Summary
Modifier and TypeMethodDescriptionconcreteOf(PossibleGenericSymbol generic) The concrete parameterisations of a generic, in a stable order.(package private) static booleanisConcrete(ISymbol type) A type that names no conceptual type parameter anywhere in it.(package private) Optional<PossibleGenericSymbol> lookup(PossibleGenericSymbol generic, List<ISymbol> arguments) The existing parameterisation of a generic with exactly these (concrete) arguments, if there is one.static Parameterisationsof(CompilableProgram program) Sweep the program's module scopes.
-
Method Details
-
of
Sweep the program's module scopes. Call under the program lock. -
concreteOf
The concrete parameterisations of a generic, in a stable order. -
lookup
The existing parameterisation of a generic with exactly these (concrete) arguments, if there is one. -
isConcrete
A type that names no conceptual type parameter anywhere in it.
-