Dotty Documentation

0.10.0-bin-SNAPSHOT

trait Symbols
extends Object

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.

[+] 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 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 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).

[+] 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).

[+] 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).

[+] 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).

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

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

[+] def newClassSymbolDenoting$default$3 : Null

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.

[+] def newCompleteClassSymbol$default$5 : MutableScope

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.

[+] def newCompleteClassSymbol$default$7 : NoSymbol.type

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.

[+] def newCompleteClassSymbol$default$9 : Null

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.

[+] 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.

[+] 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.

[+] 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.

[+] 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.

[+] def newCompletePackageSymbol$default$3 : FlagSet

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

[+] def newCompletePackageSymbol$default$4 : FlagSet

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.

[+] 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.

[+] def newConstructor$default$5 : NoSymbol.type

Create a class constructor symbol for given class cls.

[+] def newConstructor$default$6 : Coord

Create a class constructor symbol for given class cls.

[+] def newDefaultConstructor ( cls: ClassSymbol ) : Symbol

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 ) : TermSymbol

Create an import symbol pointing back to given qualifier expr.

[+] def newImportSymbol ( owner: Symbol , info: Type , coord: Coord ) : TermSymbol

Create an import symbol with given info.

[+] def newImportSymbol$default$3 : Coord

Create an import symbol pointing back to given qualifier expr.

[+] def newLazyImplicit ( info: Type ) : Symbol

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

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

Create a class symbol without a denotation.

[+] def newNakedClassSymbol$default$1 : Coord

Create a class symbol without a denotation.

[+] def newNakedClassSymbol$default$2 : Null

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

[+] 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.

[+] 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.

[+] 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.

[+] 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.

[+] 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.

[+] 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.

[+] def newPatternBoundSymbol ( name: Name , info: Type , pos: Position ) : Symbol

Define a new symbol associated with a Bind or pattern wildcard and make it gadt narrowable.

[+] def newRefinedClassSymbol ( coord: Coord ) : ClassSymbol
[+] def newRefinedClassSymbol$default$1 : Coord
[+] def newSelfSym ( cls: ClassSymbol , name: TermName , selfInfo: Type ) : TermSymbol

Create a symbol representing a selftype declaration for class cls.

[+] def newSelfSym$default$2 : TermName

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.

[+] 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.

[+] 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.

[+] def newStubSymbol$default$3 : Null

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)

[+] def newSymbol$default$5 : NoSymbol.type

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)

[+] 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.

[+] def requiredClass ( path: PreName ) : ClassSymbol
[+] def requiredClassRef ( path: PreName ) : TypeRef
[+] def requiredMethod ( path: PreName ) : TermSymbol
[+] def requiredMethodRef ( path: PreName ) : TermRef
[+] 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