TypeErasure

class TypeErasure(sourceLanguage: SourceLanguage, semiEraseVCs: Boolean, isConstructor: Boolean, isSymbol: Boolean, wildcardOK: Boolean)
Value Params
isConstructor

Argument forms part of the type of a constructor

isSymbol

If true, the type being erased is the info of a symbol.

semiEraseVCs

If true, value classes are semi-erased to ErasedValueType (they will be fully erased in ElimErasedValueType). If false, they are erased like normal classes.

sourceLanguage

Adapt our erasure rules to mimic what the given language would do.

wildcardOK

Wildcards are acceptable (true when using the erasure for computing a signature name).

Companion
object
class Object
trait Matchable
class Any

Value members

Concrete methods

def eraseInfo(tp: Type, sym: Symbol)(using Context): Type

The erasure of a symbol's info. This is different from apply in the way ExprTypes and PolyTypes are treated. eraseInfo maps them them to method types, whereas apply maps them to the underlying type.

The erasure of a symbol's info. This is different from apply in the way ExprTypes and PolyTypes are treated. eraseInfo maps them them to method types, whereas apply maps them to the underlying type.

def eraseResult(tp: Type)(using Context): Type

The erasure of a function result type.

The erasure of a function result type.