The selection type, which is additionally checked for accessibility.
Type assignment method. Each method takes as parameters - an untpd.Tree to which it assigns a type, - typed child trees it needs to access to cpmpute that type, - any further information it needs to access to compute that type.
Assign type of RefinedType.
Refinements are typed as if they were members of refinement class
An upper approximation of the given type
tp that does not refer to any symbol in
We need to approximate with ranges:
term references to symbols in
term references that have a widened type of which some part refers
to a symbol in
type references to symbols in
this types of classes in
Type variables that would be interpolated to a type that needs to be widened are replaced by the widened interpolation instance.
An abstraction of a class info, consisting of
- the intersection of its parents,
- refined by all non-private fields, methods, and type members,
- abstracted over all type parameters (into a type lambda)
- where all references to
this of the class are closed over in a RecType.
tpe is a named type, check that its denotation is accessible in the
current context. Return the type with those alternatives as denotations
which are accessible.
Also performs the following normalizations on the type
(1) parameter accessors are always dereferenced.
(2) if the owner of the denotation is a package object, it is assured
that the package object shows up as the prefix.
The qualifying class of a this or super with prefix
qual (which might be empty).
A denotation exists really if it exists and does not point to a stale symbol.
Substitute argument type
argType for parameter
pref in type
skolemizing the argument type if it is not stable and
pref occurs in
Substitute types of all arguments
args for corresponding
The number of parameters
params may exceed the number of arguments.
In this case, only the common prefix is substituted.
The type of a selection with
name of a tree with type