Package org.ek9lang.compiler.support
Class PositionalConceptualLookupMapping
java.lang.Object
org.ek9lang.compiler.support.PositionalConceptualLookupMapping
- All Implemented Interfaces:
BiFunction<List<ISymbol>,
List<ISymbol>, PositionalConceptualLookupMapping.Mapping>
public class PositionalConceptualLookupMapping
extends Object
implements BiFunction<List<ISymbol>,List<ISymbol>,PositionalConceptualLookupMapping.Mapping>
You may think why this mapping.
It's because some 'type parameters' in the generic type may be 'concrete' and not 'conceptual'.
i.e. 'type arguments' = [Integer, String, Duration] but
the 'type parameters' = [Float, X, Y, Boolean, Z] - this might be the in a generic type that also has
a generic type and has been parameterized with a mix of conceptual and concrete arguments.
This mapping works on 'positions' in the order of both defined generic parameters and the arguments passed in during
parametrisation (to concrete or other conceptual types).
-
Nested Class Summary
Modifier and TypeClassDescriptionstatic final record
Just holds a simple set of lists with the appropriate type arguments and their corresponding parameterizing parameters. -
Constructor Summary
-
Method Summary
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
-
PositionalConceptualLookupMapping
public PositionalConceptualLookupMapping()
-
-
Method Details
-
apply
public PositionalConceptualLookupMapping.Mapping apply(List<ISymbol> typeArguments, List<ISymbol> typeParameters) - Specified by:
apply
in interfaceBiFunction<List<ISymbol>,
List<ISymbol>, PositionalConceptualLookupMapping.Mapping>
-