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.

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...

class PerRun

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

type PrimitiveClassEnc = Int
val AbstractFunctionClassPerRun : PerRun
lazy val AbstractFunctionType : Array
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]

    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
    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...

    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

    lazy val OptionType : TypeRef
    lazy val PartialFunctionType : TypeRef
    lazy val PhantomClasses : Set
    val PredefImportFns : List
    lazy val Predef_classOfR : TermRef
    lazy val Predef_conformsR : TermRef
    lazy val ProductNType : Array
    lazy val ProductType : TypeRef
    private lazy val ProductTypes : Set
    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
    lazy val RootImportTypes : List
    lazy val RootPackage : TermSymbol
    val ScalaBoxedClasses : PerRun
    private lazy val ScalaBoxedTypes : Set
    lazy val ScalaLongSignatureAnnotType : TypeRef
    lazy val ScalaMathPackageVal : TermSymbol
    val ScalaNumericValueClasses : PerRun
    lazy val ScalaNumericValueTypeList : List
    private lazy val ScalaNumericValueTypes : Set
    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...

    lazy val ScalaSignatureAnnotType : TypeRef
    lazy val ScalaStaticAnnotType : TypeRef
    lazy val ScalaStaticsModuleRef : TermRef
    lazy val ScalaStrictFPAnnotType : TypeRef
    val ScalaValueClasses : PerRun
    private lazy val ScalaValueTypes : Set
    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
    val ShortEnc : Int
    lazy val ShortType : TypeRef
    lazy val SingletonClass : ClassSymbol
    lazy val SourceFileAnnotType : TypeRef
    lazy val StaticAnnotationType : TypeRef
    val StaticRootImportFns : List
    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
    private lazy val TupleTypes : Set
    lazy val UncheckedAnnotType : TypeRef
    lazy val UncheckedStableAnnotType : TypeRef
    lazy val UncheckedVarianceAnnotType : TypeRef
    val UnitEnc : Int
    lazy val UnitType : TypeRef
    lazy val UnqualifiedOwnerTypes : Set

    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
    private implicit var ctx : Context
    lazy val dummyApply : TermSymbol

    Dummy method needed by elimByName

    private var myDottyPredefModuleRef : TermRef
    val predefClassNames : Set
    lazy val reservedScalaClassNames : Set
    lazy val syntheticCoreClasses : List
    lazy val syntheticCoreMethods : List

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

    lazy val syntheticScalaClasses : List

    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

    private val valueTypeEnc : Map
    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
    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

    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
    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
    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.

    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 ?

    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?

    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.

    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
    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

    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

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

    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