The TypeMap handling the asSeenFrom
Approximate a type
tp with a type that does not contain skolem types.
An argument bounds violation is a triple consisting of - the argument tree - a string "upper" or "lower" indicating which bound is violated - the violated bound
Used only for debugging: All BaseTypeArg definitions in
cls and all its base classes.
tp as seen from prefix
pre and owner
cls. See the spec
for what this means.
The list of violations where arguments are not within bounds.
Is auto-tupling enabled?
feature enabled in class
This is the case if one of the following two alternatives holds:
The feature is imported by a named import
(the feature may be bunched with others, or renamed, but wildcard imports don't count).
The feature is enabled by a compiler option
Forward parameter bindings in baseclasses to argument types of
cls if possible.
If there have member definitions
type param v= middle type middle v= to
where the variances of both alias are the same, then enter a new definition
type param v= to
If multiple forwarders would be generated, join their
to types with an
tpe is of the form
p refers to a package
x is not owned by a package, expand it to
Normalize a list of parent types of class
cls that may contain refinements
to a list of typerefs referring to classes, by converting all refinements to member
definitions in scope
decls. Can add members to
decls as a side-effect.
Approximate union type by intersection of its dominators. That is, replace a union type Tn | ... | Tn by the smallest intersection type of base-class instances of T1,...,Tn. Example: Given
trait C[+T] trait D class A extends C[A] with D class B extends C[B] with D with E
A | B by
C[A | B] with D
Implementation of Types#simplified