A type map which checks that the only cycles in a type are F-bounds and that protects all F-bounded references by LazyRefs.
Check applied type trees for well-formedness.
Check applied type trees for well-formedness. This means
Check that type arguments args
conform to corresponding bounds in poly
Note: This does not check the bounds of AppliedTypeTrees.
Check that type arguments args
conform to corresponding bounds in poly
Note: This does not check the bounds of AppliedTypeTrees. These
are handled by method checkBounds in FirstTransform
A general checkBounds method that can be used for TypeApply nodes as well as for AppliedTypeTree nodes.
A general checkBounds method that can be used for TypeApply nodes as well as for AppliedTypeTree nodes. Also checks that type arguments to *-type parameters are fully applied.
Check that tp
refers to a nonAbstract class
and that the instance conforms to the self type of the created class.
Check the type signature of the symbol M
defined by tree
does not refer
to a private type or value which is invisible at a point where M
is still
visible.
Check the type signature of the symbol M
defined by tree
does not refer
to a private type or value which is invisible at a point where M
is still
visible. As an exception, we allow references to type aliases if the underlying
type of the alias is not a leak. So type aliases are transparent as far as
leak testing is concerned.
The info
of sym
, with problematic aliases expanded away.
See i997.scala for tests, i1130.scala for a case where it matters that we
transform leaky aliases away.
Check that info
of symbol sym
is not cyclic.
Check that info
of symbol sym
is not cyclic.
info
where every legal F-bounded reference is proctected
by a LazyRef
, or ErrorType
if a cycle was detected and reported.
Check that type tp
is realizable.
Check that refinement satisfies the following two conditions
Check that refinement satisfies the following two conditions
this
are followed by
selections.
Note: It's not yet clear what exactly we want to allow and what we want to rule out.
This depends also on firming up the DOT calculus. For the moment we only issue
deprecated warnings, not errors.
Check that symbol's definition is well-formed.