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 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 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_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
    [+] 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 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 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 ) ( implicit ctx: Context ) : Symbol
    [+] 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 ImplicitFunctionClass ( n: Int ) ( 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_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 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 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
    [+] 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
    [+] 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 isProductSubType ( tp: Type ) ( implicit ctx: Context ) : Boolean
    [+] def isTupleClass ( cls: Symbol ) : Boolean
    [+] def isTupleType ( tp: Type ) ( implicit ctx: Context ) : Boolean
    [+] def isUnimplementedFunctionClass ( cls: Symbol ) : Boolean
    [+] def isValueSubClass ( sym1: Symbol , sym2: Symbol ) : Boolean
    [+] def isValueSubType ( tref1: TypeRef , tref2: TypeRef ) ( implicit ctx: Context ) : Boolean
    [+] private def isVarArityClass ( cls: Symbol , prefix: Name ) : Boolean
    [+] private def makeScalaSpecial ( ) ( implicit ctx: Context ) : Unit

    Give the scala package a scope where a FunctionN trait is automatically added when someone looks for it.

    Give the scala package a scope where a FunctionN trait is automatically added when someone looks for it.

    [+] private def maxImplemented ( name: Name ) : Int
    [+] def methOfAny ( tp: Type ) : MethodType
    [+] def methOfAnyRef ( tp: Type ) : MethodType
    [+] def methOfAnyVal ( tp: Type ) : MethodType
    [+] 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
    [+] private 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 productArity ( tp: Type ) ( implicit ctx: Context ) : Int
    [+] 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
    [+] def wrapArrayMethodName ( elemtp: Type ) : TermName