class Definitions

A class defining symbols and types of standard definitions

Note: There's a much nicer design possible once we have implicit functions. The idea is explored to some degree in branch wip-definitions (#929): Instead of a type and a separate symbol definition, we produce in one line an implicit function from Context to Symbol, and possibly also the corresponding type. This cuts down on all the duplication encountered here.

wip-definitions tries to do the same with an implicit conversion from a SymbolPerRun type to a symbol type. The problem with that is universal equality. Comparisons will not trigger the conversion and will therefore likely return false results.

So the branch is put on hold, until we have implicit functions, which will always automatically be dereferenced.

Constructors

Definitions ( )

Members

final object ArrayOf
final object FunctionOf
[+] final object MultiArrayOf

An extractor for multi-dimensional arrays. Note that this will also extract the high bound if an element type is a wildcard. E.g.

Array[_ <: Array_ <: Nu...

An extractor for multi-dimensional arrays. Note that this will also extract the high bound if an element type is a wildcard. E.g.

Array[_ <: Array[_ <: Number]]

would match

MultiArrayOf(, 2)

class PerRun

This class would also be obviated by the implicit function type design

This class would also be obviated by the implicit function type design

type PrimitiveClassEnc = Int
val AbstractFunctionClassPerRun : PerRun [ Array [ Symbol ] ]
lazy val AbstractFunctionType : Array [ TypeRef ]
lazy val AbstractPartialFunctionType : TypeRef
lazy val AliasAnnotType : TypeRef
lazy val AnnotationDefaultAnnotType : TypeRef
lazy val AnnotationType : TypeRef
[+] lazy val AnyClass : ClassSymbol

Note: We cannot have same named methods defined in Object and Any (and AnyVal, for that matter) because after erasure the Any and AnyVal references get...

    [T] [T]

    Note: We cannot have same named methods defined in Object and Any (and AnyVal, for that matter) because after erasure the Any and AnyVal references get remapped to the Object methods which would result in a double binding assertion failure. Instead we do the following:

    • Have some methods exist only in Any, and remap them with the Erasure denotation transformer to be owned by Object.
    • Have other methods exist only in Object. To achieve this, we synthesize all Any and Object methods; Object methods no longer get loaded from a classfile.

    There's a remaining question about getClass. In Scala2.x getClass was handled by compiler magic. This is deemed too cumersome for Dotty and therefore right now getClass gets no special treatment; it's just a method on Any which returns the raw type java.lang.Class. An alternative way to get better getClass typing would be to treat getClass as a method of a generic decorator which gets remapped in a later phase to Object#getClass. Then we could give it the right type without changing the typechecker:

    implicit class AnyGetClass[T](val x: T) extends AnyVal { def getClass: java.lang.Class[T] = ??? }

    lazy val AnyRefAlias : TypeSymbol
    lazy val AnyValClass : ClassSymbol
    lazy val Any_!= : TermSymbol
    lazy val Any_## : TermSymbol
    lazy val Any_== : TermSymbol
    lazy val Any_asInstanceOf : TermSymbol
    lazy val Any_equals : TermSymbol
    lazy val Any_getClass : TermSymbol
    lazy val Any_hashCode : TermSymbol
    lazy val Any_isInstanceOf : TermSymbol
    lazy val Any_toString : TermSymbol
    lazy val ArrayConstructorR : TermRef
    lazy val ArrayModuleType : TermRef
    lazy val ArrayType : TypeRef
    lazy val Array_applyR : TermRef
    lazy val Array_cloneR : TermRef
    lazy val Array_lengthR : TermRef
    lazy val Array_updateR : TermRef
    lazy val BodyAnnotType : TypeRef
    val BooleanEnc : Int
    lazy val BooleanType : TypeRef
    lazy val Boolean_andR : TermRef
    lazy val Boolean_notR : TermRef
    lazy val Boolean_orR : TermRef
    lazy val BoxedBooleanModule : TermSymbol
    lazy val BoxedBooleanType : TypeRef
    lazy val BoxedByteModule : TermSymbol
    lazy val BoxedByteType : TypeRef
    lazy val BoxedCharModule : TermSymbol
    lazy val BoxedCharType : TypeRef
    lazy val BoxedDoubleModule : TermSymbol
    lazy val BoxedDoubleType : TypeRef
    lazy val BoxedFloatModule : TermSymbol
    lazy val BoxedFloatType : TypeRef
    lazy val BoxedIntModule : TermSymbol
    lazy val BoxedIntType : TypeRef
    lazy val BoxedLongModule : TermSymbol
    lazy val BoxedLongType : TypeRef
    lazy val BoxedNumberClass : ClassSymbol
    lazy val BoxedShortModule : TermSymbol
    lazy val BoxedShortType : TypeRef
    lazy val BoxedUnitModule : TermSymbol
    lazy val BoxedUnitType : TypeRef
    lazy val BoxesRunTimeModuleRef : TermRef
    lazy val ByNameParamClass2x : ClassSymbol
    val ByteEnc : Int
    lazy val ByteType : TypeRef
    val CharEnc : Int
    lazy val CharType : TypeRef
    lazy val ChildAnnotType : TypeRef
    lazy val ClassCastExceptionClass : ClassSymbol
    lazy val ClassClass : ClassSymbol
    lazy val ClassTagType : TypeRef
    lazy val ClassfileAnnotationType : TypeRef
    lazy val ComparableClass : ClassSymbol
    lazy val ContravariantBetweenAnnotType : TypeRef
    lazy val CovariantBetweenAnnotType : TypeRef
    lazy val DeprecatedAnnotType : TypeRef
    lazy val DottyArraysModuleRef : TermRef
    val DoubleEnc : Int
    lazy val DoubleType : TypeRef
    lazy val DynamicType : TypeRef
    lazy val EmptyPackageClass : ClassSymbol
    lazy val EmptyPackageVal : TermSymbol
    lazy val EnumType : TypeRef
    lazy val EnumValuesType : TypeRef
    lazy val EqType : TypeRef
    lazy val EqualsPatternClass : ClassSymbol
    lazy val FieldMetaAnnotType : TypeRef
    val FloatEnc : Int
    lazy val FloatType : TypeRef
    lazy val Function0_applyR : TermRef
    lazy val FunctionXXLType : TypeRef
    lazy val GetterMetaAnnotType : TypeRef
    private lazy val ImplementedFunctionType : Array [ TypeRef ]
    lazy val ImplicitNotFoundAnnotType : TypeRef
    lazy val IndexOutOfBoundsException : ClassSymbol
    lazy val InlineAnnotType : TypeRef
    lazy val InlineParamAnnotType : TypeRef
    val IntEnc : Int
    lazy val IntType : TypeRef
    lazy val Int_divR : TermRef
    lazy val Int_eqR : TermRef
    lazy val Int_geR : TermRef
    lazy val Int_leR : TermRef
    lazy val Int_minusR : TermRef
    lazy val Int_mulR : TermRef
    lazy val Int_plusR : TermRef
    lazy val InvariantBetweenAnnotType : TypeRef
    lazy val JavaCloneableClass : ClassSymbol
    lazy val JavaLangPackageVal : TermSymbol
    lazy val JavaPackageVal : TermSymbol
    lazy val JavaSerializableClass : ClassSymbol
    lazy val LanguageModuleRef : TermSymbol
    val LongEnc : Int
    lazy val LongType : TypeRef
    lazy val Long_LSR_Int : Symbol
    lazy val Long_XOR_Long : Symbol
    lazy val MatchErrorType : TypeRef
    lazy val MigrationAnnotType : TypeRef
    lazy val NativeAnnotType : TypeRef
    lazy val NilModuleRef : TermRef
    [+] lazy val NoInitClasses : This

    Classes that are known not to have an initializer irrespective of whether NoInits is set. Note: FunctionXXLClass is in this set because if it is compile...

    Classes that are known not to have an initializer irrespective of whether NoInits is set. Note: FunctionXXLClass is in this set because if it is compiled by Scala2, it does not get a NoInit flag. But since it is introduced only at erasure, there's no chance for augmentScala2Traits to do anything on a class that inherits it. So it also misses an implementation class, which means that the usual scheme of calling a superclass init in the implementation class of a Scala2 trait gets screwed up. Therefore, it is mandatory that FunctionXXL is treated as a NoInit trait.

    lazy val NonLocalReturnControlType : TypeRef
    lazy val NothingClass : ClassSymbol
    lazy val NullClass : ClassSymbol
    lazy val NullPointerExceptionClass : ClassSymbol
    lazy val ObjectClass : ClassSymbol
    lazy val Object_clone : TermSymbol
    lazy val Object_eq : TermSymbol
    lazy val Object_finalize : TermSymbol
    lazy val Object_ne : TermSymbol
    lazy val Object_notify : TermSymbol
    lazy val Object_notifyAll : TermSymbol
    lazy val Object_synchronized : TermSymbol
    lazy val Object_wait : TermSymbol
    lazy val Object_waitL : TermSymbol
    lazy val Object_waitLI : TermSymbol
    lazy val OpsPackageClass : ClassSymbol
    lazy val OpsPackageVal : TermSymbol

    A package in which we can place all methods that are interpreted specially by the compiler

    A package in which we can place all methods that are interpreted specially by the compiler

    lazy val OptionType : TypeRef
    lazy val PartialFunctionType : TypeRef
    lazy val PhantomClasses : Set [ Symbol ]
    val PredefImportFns : List [ () => TermRef ]
    lazy val Predef_ConformsR : TypeRef
    lazy val Predef_ImplicitConverterR : TypeRef
    lazy val Predef_classOfR : TermRef
    lazy val Predef_conformsR : TermRef
    lazy val ProductNType : Array [ TypeRef ]
    lazy val ProductType : TypeRef
    private lazy val ProductTypes : Set [ TypeRef ]
    lazy val Product_canEqualR : TermRef
    lazy val Product_productArityR : TermRef
    lazy val Product_productPrefixR : TermRef
    lazy val RemoteAnnotType : TypeRef
    lazy val RepeatedAnnotType : TypeRef
    lazy val RepeatedParamClass : ClassSymbol
    lazy val RootClass : ClassSymbol
    lazy val RootImportFns : List [ () => TermRef ]
    lazy val RootImportTypes : List [ TermRef ]
    lazy val RootPackage : TermSymbol
    val ScalaBoxedClasses : PerRun [ Set [ Symbol ] ]
    private lazy val ScalaBoxedTypes : Set [ TypeRef ]
    lazy val ScalaLongSignatureAnnotType : TypeRef
    lazy val ScalaMathPackageVal : TermSymbol
    val ScalaNumericValueClasses : PerRun [ Set [ Symbol ] ]
    lazy val ScalaNumericValueTypeList : List [ TypeRef ]
    private lazy val ScalaNumericValueTypes : Set [ TypeRef ]
    lazy val ScalaPackageClass : ClassSymbol
    lazy val ScalaPackageVal : TermSymbol
    lazy val ScalaPredefModuleRef : TermRef
    lazy val ScalaRuntimeModuleRef : TermRef
    lazy val ScalaShadowingPackageClass : ClassSymbol
    [+] lazy val ScalaShadowingPackageVal : TermSymbol

    The scalaShadowing package is used to safely modify classes and objects in scala so that they can be used from dotty. They will be visible as members of...

    The scalaShadowing package is used to safely modify classes and objects in scala so that they can be used from dotty. They will be visible as members of the scala package, replacing any objects or classes with the same name. But their binary artifacts are in scalaShadowing so they don't clash with the same-named scala members at runtime.

    lazy val ScalaSignatureAnnotType : TypeRef
    lazy val ScalaStaticAnnotType : TypeRef
    lazy val ScalaStaticsModuleRef : TermRef
    lazy val ScalaStrictFPAnnotType : TypeRef
    val ScalaValueClasses : PerRun [ Set [ Symbol ] ]
    private lazy val ScalaValueTypes : Set [ TypeRef ]
    lazy val SelectableType : TypeRef
    lazy val SeqType : TypeRef
    lazy val Seq_applyR : TermRef
    lazy val Seq_headR : TermRef
    lazy val SerialVersionUIDAnnotType : TypeRef
    lazy val SerializableType : TypeRef
    lazy val SetterMetaAnnotType : TypeRef
    lazy val ShadowableImportNames : Set [ TermName ]
    val ShortEnc : Int
    lazy val ShortType : TypeRef
    lazy val SingletonClass : ClassSymbol
    lazy val SourceFileAnnotType : TypeRef
    lazy val StaticAnnotationType : TypeRef
    val StaticRootImportFns : List [ () => TermRef ]
    lazy val StringAddType : TypeRef
    lazy val StringAdd_plusR : TermRef
    lazy val StringBuilderType : TypeRef
    lazy val StringClass : ClassSymbol
    lazy val StringModule : Symbol
    lazy val String_+ : TermSymbol
    lazy val String_valueOf_Object : Symbol
    lazy val SwitchAnnotType : TypeRef
    lazy val SymbolType : TypeRef
    lazy val SysPackage : TermSymbol
    lazy val Sys_errorR : TermRef
    lazy val TASTYLongSignatureAnnotType : TypeRef
    lazy val TASTYSignatureAnnotType : TypeRef
    lazy val TailrecAnnotType : TypeRef
    lazy val ThrowableClass : ClassSymbol
    lazy val ThrowsAnnotType : TypeRef
    lazy val TransientAnnotType : TypeRef
    lazy val TupleType : Array [ TypeRef ]
    private lazy val TupleTypes : Set [ TypeRef ]
    lazy val UncheckedAnnotType : TypeRef
    lazy val UncheckedStableAnnotType : TypeRef
    lazy val UncheckedVarianceAnnotType : TypeRef
    val UnitEnc : Int
    lazy val UnitType : TypeRef
    lazy val UnqualifiedOwnerTypes : Set [ NamedType ]

    Modules whose members are in the default namespace and their module classes

    Modules whose members are in the default namespace and their module classes

    lazy val UnsafeNonvariantAnnotType : TypeRef
    lazy val VolatileAnnotType : TypeRef
    lazy val XMLTopScopeModuleRef : TermRef
    private var _isInitialized : Boolean
    private val boxedTypes : Map [ TypeName, TypeRef ]
    private implicit var ctx : Context
    lazy val dummyApply : TermSymbol

    Dummy method needed by elimByName

    Dummy method needed by elimByName

    private var myDottyPredefModuleRef : TermRef
    val predefClassNames : Set [ Name ]
    lazy val reservedScalaClassNames : Set [ Name ]
    lazy val syntheticCoreClasses : List [ Symbol | Symbol ]
    lazy val syntheticCoreMethods : List [ Symbol ]

    Lists core methods that don't have underlying bytecode, but are synthesized on-the-fly in every reflection universe

    Lists core methods that don't have underlying bytecode, but are synthesized on-the-fly in every reflection universe

    lazy val syntheticScalaClasses : List [ TypeSymbol ]

    Lists core classes that don't have underlying bytecode, but are synthesized on-the-fly in every reflection universe

    Lists core classes that don't have underlying bytecode, but are synthesized on-the-fly in every reflection universe

    lazy val throwMethod : TermSymbol

    Method representing a throw

    Method representing a throw

    private val valueTypeEnc : Map [ TypeName, PrimitiveClassEnc ]
    def AbstractFunctionClass ( n: Int ) ( implicit ctx: Context ) : Symbol
    def AbstractPartialFunctionClass ( implicit ctx: Context ) : ClassSymbol
    def AliasAnnot ( implicit ctx: Context ) : ClassSymbol
    def AnnotationClass ( implicit ctx: Context ) : ClassSymbol
    def AnnotationDefaultAnnot ( implicit ctx: Context ) : ClassSymbol
    def AnyMethods : List [ TermSymbol ]
    def AnyRefType : TypeRef
    def AnyType : TypeRef
    def AnyValType : TypeRef
    def ArrayClass ( implicit ctx: Context ) : ClassSymbol
    def ArrayConstructor ( implicit ctx: Context ) : Symbol
    def ArrayModule ( implicit ctx: Context ) : ClassSymbol
    def Array_apply ( implicit ctx: Context ) : Symbol
    def Array_clone ( implicit ctx: Context ) : Symbol
    def Array_length ( implicit ctx: Context ) : Symbol
    def Array_update ( implicit ctx: Context ) : Symbol
    def BodyAnnot ( implicit ctx: Context ) : ClassSymbol
    def BooleanClass ( implicit ctx: Context ) : ClassSymbol
    def Boolean_! : Symbol
    def Boolean_&& : Symbol
    def Boolean_|| : Symbol
    def BoxedBooleanClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedByteClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedCharClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedDoubleClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedFloatClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedIntClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedLongClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedShortClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedUnitClass ( implicit ctx: Context ) : ClassSymbol
    def BoxedUnit_UNIT ( implicit ctx: Context ) : TermSymbol
    def BoxesRunTimeClass ( implicit ctx: Context ) : ClassSymbol
    def BoxesRunTimeModule ( implicit ctx: Context ) : Symbol
    def ByteClass ( implicit ctx: Context ) : ClassSymbol
    def CharClass ( implicit ctx: Context ) : ClassSymbol
    def ChildAnnot ( implicit ctx: Context ) : ClassSymbol
    def ClassTagClass ( implicit ctx: Context ) : ClassSymbol
    def ClassTagModule ( implicit ctx: Context ) : Symbol
    def ClassType ( arg: Type ) ( implicit ctx: Context ) : Type
    def ClassfileAnnotationClass ( implicit ctx: Context ) : ClassSymbol
    def ContravariantBetweenAnnot ( implicit ctx: Context ) : ClassSymbol
    def CovariantBetweenAnnot ( implicit ctx: Context ) : ClassSymbol
    def DeprecatedAnnot ( implicit ctx: Context ) : ClassSymbol
    def DottyArraysModule ( implicit ctx: Context ) : Symbol
    def DottyPredefModule ( implicit ctx: Context ) : Symbol
    def DottyPredefModuleRef : TermRef
    def DoubleClass ( implicit ctx: Context ) : ClassSymbol
    def DynamicClass ( implicit ctx: Context ) : ClassSymbol
    def EnumClass ( implicit ctx: Context ) : ClassSymbol
    def EnumType ( sym: Symbol ) ( implicit ctx: Context ) : TypeRef

    The enumeration type, goven a value of the enumeration

    The enumeration type, goven a value of the enumeration

    def EnumValuesClass ( implicit ctx: Context ) : ClassSymbol
    def EqClass ( implicit ctx: Context ) : ClassSymbol
    def FieldMetaAnnot ( implicit ctx: Context ) : ClassSymbol
    def FloatClass ( implicit ctx: Context ) : ClassSymbol
    def Function0_apply ( implicit ctx: Context ) : Symbol
    def FunctionClass ( n: Int , isImplicit: Boolean ) ( implicit ctx: Context ) : Symbol
    def FunctionClass$default$2 : Boolean
    def FunctionClassPerRun : PerRun [ Array [ Symbol ] ]
    def FunctionType ( n: Int , isImplicit: Boolean ) ( implicit ctx: Context ) : TypeRef
    def FunctionType$default$2 : Boolean
    def FunctionXXLClass ( implicit ctx: Context ) : ClassSymbol
    def GetterMetaAnnot ( implicit ctx: Context ) : ClassSymbol
    def ImplicitNotFoundAnnot ( implicit ctx: Context ) : ClassSymbol
    def InlineAnnot ( implicit ctx: Context ) : ClassSymbol
    def InlineParamAnnot ( implicit ctx: Context ) : ClassSymbol
    def IntClass ( implicit ctx: Context ) : ClassSymbol
    def Int_* : Symbol
    def Int_+ : Symbol
    def Int_- : Symbol
    def Int_/ : Symbol
    def Int_<= : Symbol
    def Int_== : Symbol
    def Int_>= : Symbol
    def InvariantBetweenAnnot ( implicit ctx: Context ) : ClassSymbol
    def LanguageModuleClass ( implicit ctx: Context ) : ClassSymbol
    def LongClass ( implicit ctx: Context ) : ClassSymbol
    def MatchErrorClass ( implicit ctx: Context ) : ClassSymbol
    def MigrationAnnot ( implicit ctx: Context ) : ClassSymbol
    def NativeAnnot ( implicit ctx: Context ) : ClassSymbol
    def NilModule ( implicit ctx: Context ) : Symbol
    def NothingType : TypeRef
    def NullType : TypeRef
    def ObjectMethods : List [ TermSymbol ]
    def ObjectType : TypeRef
    def OptionClass ( implicit ctx: Context ) : ClassSymbol
    def PartialFunctionClass ( implicit ctx: Context ) : ClassSymbol
    def Predef_Conforms ( implicit ctx: Context ) : Symbol
    def Predef_ImplicitConverter ( implicit ctx: Context ) : Symbol
    def Predef_classOf ( implicit ctx: Context ) : Symbol
    def Predef_conforms ( implicit ctx: Context ) : Symbol
    def Predef_eqAny ( implicit ctx: Context ) : TermSymbol
    def ProductClass ( implicit ctx: Context ) : ClassSymbol
    def Product_canEqual ( implicit ctx: Context ) : Symbol
    def Product_productArity ( implicit ctx: Context ) : Symbol
    def Product_productPrefix ( implicit ctx: Context ) : Symbol
    def RemoteAnnot ( implicit ctx: Context ) : ClassSymbol
    def RepeatedAnnot ( implicit ctx: Context ) : ClassSymbol
    def RepeatedParamType : TypeRef
    def ScalaLongSignatureAnnot ( implicit ctx: Context ) : ClassSymbol
    def ScalaPredefModule ( implicit ctx: Context ) : Symbol
    def ScalaRuntimeClass ( implicit ctx: Context ) : ClassSymbol
    def ScalaRuntimeModule ( implicit ctx: Context ) : Symbol
    def ScalaRuntime_drop ( implicit ctx: Context ) : Symbol
    def ScalaRuntime_dropR ( implicit ctx: Context ) : TermRef
    def ScalaSignatureAnnot ( implicit ctx: Context ) : ClassSymbol
    def ScalaStaticAnnot ( implicit ctx: Context ) : ClassSymbol
    def ScalaStaticsClass ( implicit ctx: Context ) : ClassSymbol
    def ScalaStaticsModule ( implicit ctx: Context ) : Symbol
    def ScalaStrictFPAnnot ( implicit ctx: Context ) : ClassSymbol
    def SeqClass ( implicit ctx: Context ) : ClassSymbol
    def Seq_apply ( implicit ctx: Context ) : Symbol
    def Seq_head ( implicit ctx: Context ) : Symbol
    def SerialVersionUIDAnnot ( implicit ctx: Context ) : ClassSymbol
    def SerializableClass ( implicit ctx: Context ) : ClassSymbol
    def SetterMetaAnnot ( implicit ctx: Context ) : ClassSymbol
    def ShortClass ( implicit ctx: Context ) : ClassSymbol
    def SingletonType : TypeRef
    def SourceFileAnnot ( implicit ctx: Context ) : ClassSymbol
    def StaticAnnotationClass ( implicit ctx: Context ) : ClassSymbol
    def StringAddClass ( implicit ctx: Context ) : ClassSymbol
    def StringAdd_+ ( implicit ctx: Context ) : Symbol
    def StringBuilderClass ( implicit ctx: Context ) : ClassSymbol
    def StringType : Type
    def SwitchAnnot ( implicit ctx: Context ) : ClassSymbol
    def SymbolClass ( implicit ctx: Context ) : ClassSymbol
    def Sys_error ( implicit ctx: Context ) : Symbol
    def TASTYLongSignatureAnnot ( implicit ctx: Context ) : ClassSymbol
    def TASTYSignatureAnnot ( implicit ctx: Context ) : ClassSymbol
    def TailrecAnnot ( implicit ctx: Context ) : ClassSymbol
    def ThrowableType : TypeRef
    def ThrowsAnnot ( implicit ctx: Context ) : ClassSymbol
    def TransientAnnot ( implicit ctx: Context ) : ClassSymbol
    def UncheckedAnnot ( implicit ctx: Context ) : ClassSymbol
    def UncheckedStableAnnot ( implicit ctx: Context ) : ClassSymbol
    def UncheckedVarianceAnnot ( implicit ctx: Context ) : ClassSymbol
    def UnitClass ( implicit ctx: Context ) : ClassSymbol
    def UnsafeNonvariantAnnot ( implicit ctx: Context ) : ClassSymbol
    def VolatileAnnot ( implicit ctx: Context ) : ClassSymbol
    def boxedType ( tp: Type ) ( implicit ctx: Context ) : TypeRef

    The type of the boxed class corresponding to primitive value type tp.

    The type of the boxed class corresponding to primitive value type tp.

    private def completeClass ( cls: ClassSymbol ) : ClassSymbol
    private implicit def ctx_= ( x$1: Context ) : Unit
    private def enterAliasType ( name: TypeName , tpe: Type , flags: FlagSet ) : TypeSymbol
    def enterAliasType$default$3 : R
    private def enterCompleteClassSymbol ( owner: Symbol , name: TypeName , flags: FlagSet , parents: List [ TypeRef ] , decls: Scope ) : ClassSymbol
    def enterCompleteClassSymbol$default$5 : MutableScope
    private def enterMethod ( cls: ClassSymbol , name: TermName , info: Type , flags: FlagSet ) : TermSymbol
    def enterMethod$default$4 : R
    private def enterPolyMethod ( cls: ClassSymbol , name: TermName , typeParamCount: Int , resultTypeFn: PolyType => Type , flags: FlagSet ) : TermSymbol
    def enterPolyMethod$default$5 : R
    private def enterSpecialPolyClass ( name: TypeName , paramFlags: FlagSet , parentConstrs: => Seq [ Type ] ) : ClassSymbol
    private def enterSyntheticTypeParam ( cls: ClassSymbol , paramFlags: FlagSet , scope: MutableScope , suffix: String ) : Symbol
    def enterSyntheticTypeParam$default$4 : String
    private def enterT1EmptyParamsMethod ( cls: ClassSymbol , name: TermName , resultTypeFn: PolyType => Type , flags: FlagSet ) : TermSymbol
    private def enterT1ParameterlessMethod ( cls: ClassSymbol , name: TermName , resultTypeFn: PolyType => Type , flags: FlagSet ) : TermSymbol
    private def enterTypeField ( cls: ClassSymbol , name: TypeName , flags: FlagSet , scope: MutableScope ) : Symbol
    private def enterTypeParam ( cls: ClassSymbol , name: TypeName , flags: FlagSet , scope: MutableScope ) : Symbol
    [+] def erasedFunctionClass ( cls: Symbol ) : Symbol

    Returns the erased class of the function class cls - FunctionN for N > 22 becomes FunctionXXL - FunctionN for 22 > N >= 0 remains as FunctionN - Implicit...

    Returns the erased class of the function class cls - FunctionN for N > 22 becomes FunctionXXL - FunctionN for 22 > N >= 0 remains as FunctionN - ImplicitFunctionN for N > 22 becomes FunctionXXL - ImplicitFunctionN for 22 > N >= 0 becomes FunctionN - anything else becomes a NoSymbol

    [+] def erasedFunctionType ( cls: Symbol ) : Type

    Returns the erased type of the function class cls - FunctionN for N > 22 becomes FunctionXXL - FunctionN for 22 > N >= 0 remains as FunctionN - ImplicitF...

    Returns the erased type of the function class cls - FunctionN for N > 22 becomes FunctionXXL - FunctionN for 22 > N >= 0 remains as FunctionN - ImplicitFunctionN for N > 22 becomes FunctionXXL - ImplicitFunctionN for 22 > N >= 0 becomes FunctionN - anything else becomes a NoType

    def functionArity ( tp: Type ) ( implicit ctx: Context ) : Int
    def init ( ) ( implicit ctx: Context ) : Unit
    def isAbstractFunctionClass ( cls: Symbol ) : Boolean
    def isBottomClass ( cls: Symbol ) : Boolean
    def isBottomType ( tp: Type ) : Boolean
    def isFunctionClass ( cls: Symbol ) : Boolean

    Is a function class. - FunctionN for N >= 0 - ImplicitFunctionN for N >= 0

    Is a function class. - FunctionN for N >= 0 - ImplicitFunctionN for N >= 0

    def isFunctionType ( tp: Type ) ( implicit ctx: Context ) : Boolean

    Is tp (an alias) of either a scala.FunctionN or a scala.ImplicitFunctionN?

    Is tp (an alias) of either a scala.FunctionN or a scala.ImplicitFunctionN?

    def isImplicitFunctionClass ( cls: Symbol ) : Boolean

    Is an implicit function class. - ImplicitFunctionN for N >= 0

    Is an implicit function class. - ImplicitFunctionN for N >= 0

    def isImplicitFunctionType ( tp: Type ) ( implicit ctx: Context ) : Boolean
    private def isInitialized : Boolean
    def isPolymorphicAfterErasure ( sym: Symbol ) : Boolean
    def isPredefClass ( cls: Symbol ) : Boolean

    Is cls the predef module class, or a class inherited by Predef?

    Is cls the predef module class, or a class inherited by Predef?

    def isProductClass ( cls: Symbol ) : Boolean
    def isSyntheticFunctionClass ( cls: Symbol ) : Boolean

    Is a synthetic function class - FunctionN for N > 22 - ImplicitFunctionN for N >= 0

    Is a synthetic function class - FunctionN for N > 22 - ImplicitFunctionN for N >= 0

    def isTupleClass ( cls: Symbol ) : Boolean
    def isTupleType ( tp: Type ) ( implicit ctx: Context ) : Boolean
    def isValueSubClass ( sym1: Symbol , sym2: Symbol ) : Boolean
    def isValueSubType ( tref1: TypeRef , tref2: TypeRef ) ( implicit ctx: Context ) : Boolean
    private def isVarArityClass ( cls: Symbol , prefix: String ) : Boolean
    def isXXLFunctionClass ( cls: Symbol ) : Boolean

    Is a class that will be erased to FunctionXXL - FunctionN for N >= 22 - ImplicitFunctionN for N >= 22

    Is a class that will be erased to FunctionXXL - FunctionN for N >= 22 - ImplicitFunctionN for N >= 22

    def methOfAny ( tp: Type ) : LT
    def methOfAnyRef ( tp: Type ) : LT
    def methOfAnyVal ( tp: Type ) : LT
    private def mkArityArray ( name: String , arity: Int , countFrom: Int ) : Array [ TypeRef ]
    def newArrayMethod ( implicit ctx: Context ) : TermSymbol
    private def newClassSymbol ( owner: Symbol , name: TypeName , flags: FlagSet , infoFn: ClassSymbol => Type ) : ClassSymbol
    def newFunctionNTrait ( name: TypeName ) : ClassSymbol

    The trait FunctionN or ImplicitFunctionN, for some N

    The trait FunctionN or ImplicitFunctionN, for some N

    def newGenericArrayMethod ( implicit ctx: Context ) : TermSymbol
    private def newMethod ( cls: ClassSymbol , name: TermName , info: Type , flags: FlagSet ) : TermSymbol
    def newMethod$default$4 : R
    private def newSymbol ( owner: Symbol , name: N , flags: FlagSet , info: Type ) : Symbol
    def runtimeMethodRef ( name: PreName ) : TermRef
    def scalaClassName ( cls: Symbol ) ( implicit ctx: Context ) : TypeName

    If cls is a class in the scala package, its name, otherwise EmptyTypeName

    If cls is a class in the scala package, its name, otherwise EmptyTypeName

    def scalaClassName ( ref: Type ) ( implicit ctx: Context ) : TypeName

    If type ref refers to a class in the scala package, its name, otherwise EmptyTypeName

    If type ref refers to a class in the scala package, its name, otherwise EmptyTypeName

    def staticsMethod ( name: PreName ) : TermSymbol
    def staticsMethodRef ( name: PreName ) : TermRef
    def tupleType ( elems: List [ Type ] ) : Type
    private def valueTypeRef ( name: String , boxed: TypeRef , jtype: Class [ Nothing <: Any ] , enc: Int ) : TypeRef