- Companion
- class
Type members
Types
Value members
Concrete methods
Try to fully define tp
. Return whether constraint has changed.
Any changed constraint is kept.
Try to fully define tp
. Return whether constraint has changed.
Any changed constraint is kept.
Replace every top-level occurrence of a wildcard type argument by
a fresh skolem type. The skolem types are of the form $i.CAP, where
$i is a skolem of type scala.internal.TypeBox
, and CAP
is its
type member. See the documentation of TypeBox
for a rationale why we do this.
Replace every top-level occurrence of a wildcard type argument by
a fresh skolem type. The skolem types are of the form $i.CAP, where
$i is a skolem of type scala.internal.TypeBox
, and CAP
is its
type member. See the documentation of TypeBox
for a rationale why we do this.
Following type aliases and stripping refinements and annotations, if one arrives at a class type reference where the class has a companion module, a reference to that companion module. Otherwise NoType
Following type aliases and stripping refinements and annotations, if one arrives at a class type reference where the class has a companion module, a reference to that companion module. Otherwise NoType
If tp
is top-level type variable with a lower bound in the current constraint,
instantiate it from below. We also look for TypeVars in other places where
their instantiation could uncover new type members. However that search is best
effort only. It might miss type variables that appear in structures involving
alias types and type projections.
If tp
is top-level type variable with a lower bound in the current constraint,
instantiate it from below. We also look for TypeVars in other places where
their instantiation could uncover new type members. However that search is best
effort only. It might miss type variables that appear in structures involving
alias types and type projections.
The fully defined type, where all type variables are forced. Throws an error if type contains wildcards.
The fully defined type, where all type variables are forced. Throws an error if type contains wildcards.
If tree
has a type lambda type, infer its type parameters by comparing with expected type pt
If tree
has a type lambda type, infer its type parameters by comparing with expected type pt
Instantiate any type variables in tp
whose bounds contain a reference to
one of the parameters in paramss
.
Instantiate any type variables in tp
whose bounds contain a reference to
one of the parameters in paramss
.
Instantiate selected type variables tvars
in type tp
in a special mode:
Instantiate selected type variables tvars
in type tp
in a special mode:
- If a type variable is constrained from below (i.e. constraint bound != given lower bound) it is minimized.
- Otherwise, if the type variable is constrained from above, it is maximized.
- Otherwise, if the type variable has a lower bound != Nothing, it is minimized.
- Otherwise, if the type variable has an upper bound != Any, it is maximized. If none of (1) - (4) applies, the type variable is left uninstantiated. The method is called to instantiate type variables before an implicit search.
Is type fully defined, meaning the type does not contain wildcard types
or uninstantiated type variables. As a side effect, this will minimize
any uninstantiated type variables, according to the given force degree,
but only if the overall result of isFullyDefined
is true
.
Variables that are successfully minimized do not count as uninstantiated.
Is type fully defined, meaning the type does not contain wildcard types
or uninstantiated type variables. As a side effect, this will minimize
any uninstantiated type variables, according to the given force degree,
but only if the overall result of isFullyDefined
is true
.
Variables that are successfully minimized do not count as uninstantiated.
Instantiate undetermined type variables so that type tp
is maximized.
Instantiate undetermined type variables so that type tp
is maximized.
- Returns
The list of type symbols that were created to instantiate undetermined type variables that occur non-variantly
For all type parameters occurring in tp
:
If the bounds of tp
in the current constraint are equal wrt =:=,
instantiate the type parameter to the lower bound's approximation
(approximation because of possible F-bounds).
For all type parameters occurring in tp
:
If the bounds of tp
in the current constraint are equal wrt =:=,
instantiate the type parameter to the lower bound's approximation
(approximation because of possible F-bounds).
The list of uninstantiated type variables bound by some prefix of type T
which
occur in at least one formal parameter type of a prefix application.
Considered prefixes are:
The list of uninstantiated type variables bound by some prefix of type T
which
occur in at least one formal parameter type of a prefix application.
Considered prefixes are:
- The function
f
of an application nodef(e1, .., en)
- The function
f
of a type application nodef[T1, ..., Tn]
- The prefix
p
of a selectionp.f
. - The result expression
e
of a block{s1; .. sn; e}
.