This transformer leaves the tree alone except to remap its types.
Return pre.baseType(clazz)
, or if that's NoType
and clazz
is a refinement, pre
itself.
Return pre.baseType(clazz)
, or if that's NoType
and clazz
is a refinement, pre
itself.
See bug397.scala for an example where the second alternative is needed.
The problem is that when forming the base type sequence of an abstract type,
any refinements in the base type list might be regenerated, and thus acquire
new class symbols. However, since refinements always have non-interesting prefixes
it looks OK to me to just take the prefix directly.
Map a tree that is part of an annotation argument.
Map a tree that is part of an annotation argument. If the tree cannot be mapped, then invoke giveup(). The default is to transform the tree with TypeMapTransformer.
Map this function over given list of symbols
Map this function over given list of symbols
Map this function over given scope
Map this function over given scope
Map this function over given type
Map this function over given type
Map over a set of annotation arguments.
Map over a set of annotation arguments. If any of the arguments cannot be mapped, then return Nil.
Called by mapOver to determine whether the original symbols can be returned, or whether they must be cloned.
Called by mapOver to determine whether the original symbols can be returned, or whether they must be cloned. Overridden in VariantTypeMap.
Mix in VariantTypeMap if you want variances to be significant.
Mix in VariantTypeMap if you want variances to be significant.
A map to compute the asSeenFrom method