Constraint over undetermined type parameters that keeps separate maps to reflect parameter orderings.
- Value parameters:
- boundsMap
a map from TypeLambda to arrays. Each array contains twice the number of entries as there a type parameters in the TypeLambda. The first half of the array contains the type bounds that constrain the lambda's type parameters. The second half might contain type variables that track the corresponding parameters, or is left empty (filled with nulls). An instantiated type parameter is represented by having its instance type in the corresponding array entry. The dual use of arrays for poly params and typevars is to save space and hopefully gain some speed.
- lowerMap
a map from TypeLambdas to arrays. Each array entry corresponds to a parameter P of the type lambda; it contains all constrained parameters Q that are known to be smaller than P, i.e. Q <: P.
- upperMap
a map from TypeLambdas to arrays. Each array entry corresponds to a parameter P of the type lambda; it contains all constrained parameters Q that are known to be greater than P, i.e. P <: Q.
- Companion:
- object
Type members
Types
Value members
Concrete methods
Add the fact param1 <: param2
to the constraint current
and propagate
<:<
relationships between parameters ("edges") but not bounds.
Add the fact param1 <: param2
to the constraint current
and propagate
<:<
relationships between parameters ("edges") but not bounds.
A new constraint which is derived from this constraint by removing
the type parameter param
from the domain and replacing all top-level occurrences
of the parameter elsewhere in the constraint by type tp
.
A new constraint which is derived from this constraint by removing
the type parameter param
from the domain and replacing all top-level occurrences
of the parameter elsewhere in the constraint by type tp
.
Inherited methods
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
A fallback text representation, if the pattern matching in Printers does not have a case for this showable element
- Inherited from:
- Showable
The string representation of this showable element.
The string representation of this showable element.
- Inherited from:
- Showable
The string representation with each line after the first one indented by the given given margin (in spaces).
The string representation with each line after the first one indented by the given given margin (in spaces).
- Inherited from:
- Showable
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.
- Inherited from:
- Showable