trait Symbols

Creation methods for symbols

Constructors

Members

val companionMethodFlags : FlagSet
def getClassIfDefined ( path: PreName ) : Symbol

Get ClassSymbol if class is either defined in current compilation run or present on classpath. Returns NoSymbol otherwise.

Get ClassSymbol if class is either defined in current compilation run or present on classpath. Returns NoSymbol otherwise.

[+] def mapSymbols ( originals: List [ Symbol ] , ttmap: TreeTypeMap , mapAlways: Boolean ) : List [ Symbol ]

Map given symbols, subjecting their attributes to the mappings defined in the given TreeTypeMap ttmap. Cross symbol references are brought over from ori...

Map given symbols, subjecting their attributes to the mappings defined in the given TreeTypeMap ttmap. Cross symbol references are brought over from originals to copies. Do not copy any symbols if all attributes of all symbols stay the same.

[+] def mapSymbols$default$3 : Boolean

Map given symbols, subjecting their attributes to the mappings defined in the given TreeTypeMap ttmap. Cross symbol references are brought over from ori...

Map given symbols, subjecting their attributes to the mappings defined in the given TreeTypeMap ttmap. Cross symbol references are brought over from originals to copies. Do not copy any symbols if all attributes of all symbols stay the same.

def newClassSymbol ( owner: Symbol , name: TypeName , flags: FlagSet , infoFn: ClassSymbol => Type , privateWithin: Symbol , coord: Coord , assocFile: AbstractFile ) : ClassSymbol

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

def newClassSymbol$default$5 : NoSymbol.type

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

def newClassSymbol$default$6 : Coord

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

def newClassSymbol$default$7 : Null

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

Create a class symbol from its non-info fields and a function producing its info (the produced info may be lazy).

def newClassSymbolDenoting ( denotFn: ClassSymbol => SymDenotation , coord: Coord , assocFile: AbstractFile ) : ClassSymbol

Create a class symbol from a function producing its denotation

Create a class symbol from a function producing its denotation

def newClassSymbolDenoting$default$2 : Coord

Create a class symbol from a function producing its denotation

Create a class symbol from a function producing its denotation

def newClassSymbolDenoting$default$3 : Null

Create a class symbol from a function producing its denotation

Create a class symbol from a function producing its denotation

def newCompleteClassSymbol ( owner: Symbol , name: TypeName , flags: FlagSet , parents: List [ TypeRef ] , decls: Scope , selfInfo: Type , privateWithin: Symbol , coord: Coord , assocFile: AbstractFile ) : ClassSymbol

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteClassSymbol$default$5 : MutableScope

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteClassSymbol$default$6 : NoType.type

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteClassSymbol$default$7 : NoSymbol.type

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteClassSymbol$default$8 : Coord

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteClassSymbol$default$9 : Null

Create a class symbol from its non-info fields and the fields of its info.

Create a class symbol from its non-info fields and the fields of its info.

def newCompleteModuleSymbol ( owner: Symbol , name: TermName , modFlags: FlagSet , clsFlags: FlagSet , parents: List [ TypeRef ] , decls: Scope , privateWithin: Symbol , coord: Coord , assocFile: AbstractFile ) : TermSymbol

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

def newCompleteModuleSymbol$default$7 : NoSymbol.type

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

def newCompleteModuleSymbol$default$8 : Coord

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

def newCompleteModuleSymbol$default$9 : Null

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

Create a module symbol with associated module class from its non-info fields and the fields of the module class info.

def newCompletePackageSymbol ( owner: Symbol , name: TermName , modFlags: FlagSet , clsFlags: FlagSet , decls: Scope ) : TermSymbol

Create a package symbol with associated package class from its non-info fields its member scope.

Create a package symbol with associated package class from its non-info fields its member scope.

def newCompletePackageSymbol$default$3 : R

Create a package symbol with associated package class from its non-info fields its member scope.

Create a package symbol with associated package class from its non-info fields its member scope.

def newCompletePackageSymbol$default$4 : R

Create a package symbol with associated package class from its non-info fields its member scope.

Create a package symbol with associated package class from its non-info fields its member scope.

def newCompletePackageSymbol$default$5 : MutableScope

Create a package symbol with associated package class from its non-info fields its member scope.

Create a package symbol with associated package class from its non-info fields its member scope.

def newConstructor ( cls: ClassSymbol , flags: FlagSet , paramNames: List [ TermName ] , paramTypes: List [ Type ] , privateWithin: Symbol , coord: Coord ) : Symbol

Create a class constructor symbol for given class cls.

Create a class constructor symbol for given class cls.

def newConstructor$default$5 : NoSymbol.type

Create a class constructor symbol for given class cls.

Create a class constructor symbol for given class cls.

def newConstructor$default$6 : Coord

Create a class constructor symbol for given class cls.

Create a class constructor symbol for given class cls.

def newDefaultConstructor ( cls: ClassSymbol ) : Symbol

Create an empty default constructor symbol for given class cls.

Create an empty default constructor symbol for given class cls.

def newErrorSymbol ( owner: Symbol , name: Name , msg: => Message ) : Symbol
def newImportSymbol ( owner: Symbol , expr: Tree , coord: Coord ) : Symbol

Create an import symbol pointing back to given qualifier expr.

Create an import symbol pointing back to given qualifier expr.

def newImportSymbol$default$3 : Coord

Create an import symbol pointing back to given qualifier expr.

Create an import symbol pointing back to given qualifier expr.

def newLazyImplicit ( info: Type ) : Symbol

Create a synthetic lazy implicit value

Create a synthetic lazy implicit value

[+] def newLocalDummy ( cls: Symbol , coord: Coord ) : Symbol

Create the local template dummy of given class cls. In a template

trait T { val fld: Int; { val x: int = 2 }; val fld2 = { val y = 2; y }}

the owner of x

Create the local template dummy of given class cls. In a template

trait T { val fld: Int; { val x: int = 2 }; val fld2 = { val y = 2; y }}

the owner of x is the local dummy of the template. The owner of the local dummy is then the class of the template itself. By contrast, the owner of y would be fld2. There is a single local dummy per template.

[+] def newLocalDummy$default$2 : Coord

Create the local template dummy of given class cls. In a template

trait T { val fld: Int; { val x: int = 2 }; val fld2 = { val y = 2; y }}

the owner of x

Create the local template dummy of given class cls. In a template

trait T { val fld: Int; { val x: int = 2 }; val fld2 = { val y = 2; y }}

the owner of x is the local dummy of the template. The owner of the local dummy is then the class of the template itself. By contrast, the owner of y would be fld2. There is a single local dummy per template.

def newModuleSymbol ( owner: Symbol , name: TermName , modFlags: FlagSet , clsFlags: FlagSet , infoFn: (TermSymbol, ClassSymbol) => Type , privateWithin: Symbol , coord: Coord , assocFile: AbstractFile ) : TermSymbol

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be laz...

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be lazy).

def newModuleSymbol$default$6 : NoSymbol.type

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be laz...

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be lazy).

def newModuleSymbol$default$7 : Coord

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be laz...

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be lazy).

def newModuleSymbol$default$8 : Null

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be laz...

Create a module symbol with associated module class from its non-info fields and a function producing the info of the module class (this info may be lazy).

def newNakedClassSymbol ( coord: Coord , assocFile: AbstractFile ) ( implicit ctx: Context ) : ClassSymbol

Create a class symbol without a denotation.

Create a class symbol without a denotation.

def newNakedClassSymbol$default$1 : Coord

Create a class symbol without a denotation.

Create a class symbol without a denotation.

def newNakedClassSymbol$default$2 : Null

Create a class symbol without a denotation.

Create a class symbol without a denotation.

[+] def newNakedSymbol ( coord: Coord ) ( implicit ctx: Context ) : Symbol

Create a symbol without a denotation. Note this uses a cast instead of a direct type refinement because it's debug-friendlier not to create an anonymous...

Create a symbol without a denotation. Note this uses a cast instead of a direct type refinement because it's debug-friendlier not to create an anonymous class here.

[+] def newNakedSymbol$default$1 : Coord

Create a symbol without a denotation. Note this uses a cast instead of a direct type refinement because it's debug-friendlier not to create an anonymous...

Create a symbol without a denotation. Note this uses a cast instead of a direct type refinement because it's debug-friendlier not to create an anonymous class here.

def newNormalizedClassSymbol ( owner: Symbol , name: TypeName , flags: FlagSet , parentTypes: List [ Type ] , decls: Scope , selfInfo: Type , privateWithin: Symbol , coord: Coord , assocFile: AbstractFile ) : ClassSymbol

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newNormalizedClassSymbol$default$5 : MutableScope

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newNormalizedClassSymbol$default$6 : NoType.type

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newNormalizedClassSymbol$default$7 : NoSymbol.type

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newNormalizedClassSymbol$default$8 : Coord

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newNormalizedClassSymbol$default$9 : Null

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

Same as newCompleteClassSymbol except that parents can be a list of arbitrary types which get normalized into type refs and parameter bindings.

def newPackageSymbol ( owner: Symbol , name: TermName , infoFn: (TermSymbol, ClassSymbol) => LazyType ) : TermSymbol

Create a package symbol with associated package class from its non-info fields and a lazy type for loading the package's members.

Create a package symbol with associated package class from its non-info fields and a lazy type for loading the package's members.

def newSelfSym ( cls: ClassSymbol , name: TermName , selfInfo: Type ) : TermSymbol

Create a symbol representing a selftype declaration for class cls.

Create a symbol representing a selftype declaration for class cls.

def newSelfSym$default$2 : N

Create a symbol representing a selftype declaration for class cls.

Create a symbol representing a selftype declaration for class cls.

def newSelfSym$default$3 : NoType.type

Create a symbol representing a selftype declaration for class cls.

Create a symbol representing a selftype declaration for class cls.

def newSkolem ( tp: Type ) : Symbol

Create a new skolem symbol. This is not the same as SkolemType, even though the motivation (create a singleton referencing to a type) is similar.

Create a new skolem symbol. This is not the same as SkolemType, even though the motivation (create a singleton referencing to a type) is similar.

def newStubSymbol ( owner: Symbol , name: Name , file: AbstractFile ) : Symbol

Create a stub symbol that will issue a missing reference error when attempted to be completed.

Create a stub symbol that will issue a missing reference error when attempted to be completed.

def newStubSymbol$default$3 : Null

Create a stub symbol that will issue a missing reference error when attempted to be completed.

Create a stub symbol that will issue a missing reference error when attempted to be completed.

def newSymbol ( owner: Symbol , name: N , flags: FlagSet , info: Type , privateWithin: Symbol , coord: Coord ) : Symbol

Create a symbol from its fields (info may be lazy)

Create a symbol from its fields (info may be lazy)

def newSymbol$default$5 : NoSymbol.type

Create a symbol from its fields (info may be lazy)

Create a symbol from its fields (info may be lazy)

def newSymbol$default$6 : Coord

Create a symbol from its fields (info may be lazy)

Create a symbol from its fields (info may be lazy)

def newTypeParams ( owner: Symbol , names: List [ TypeName ] , flags: FlagSet , boundsFn: List [ TypeRef ] => List [ Type ] ) : List [ TypeSymbol ]

Create new type parameters with given owner, names, and flags.

Create new type parameters with given owner, names, and flags.

def requiredClass ( path: PreName ) : ClassSymbol
def requiredClassRef ( path: PreName ) : TypeRef
def requiredModule ( path: PreName ) : TermSymbol
def requiredModuleRef ( path: PreName ) : TermRef
def requiredPackage ( path: PreName ) : TermSymbol
def requiredPackageRef ( path: PreName ) : TermRef
def synthesizeCompanionMethod ( name: Name , target: SymDenotation , owner: SymDenotation ) ( implicit ctx: Context ) : Symbol