class PackageClassSymbol extends SymbolTable.ModuleClassSymbol
- Alphabetic
- By Inheritance
- PackageClassSymbol
- ModuleClassSymbol
- ClassSymbol
- ClassSymbolApi
- TypeSymbol
- TypeSymbolApi
- Symbol
- Attachable
- Annotatable
- HasFlags
- SymbolContextApiImpl
- SymbolApi
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
-
new
PackageClassSymbol(owner0: SymbolTable.Symbol, pos0: SymbolTable.Position, name0: SymbolTable.TypeName)
- Attributes
- protected[Symbols]
Type Members
- type AccessBoundaryType = SymbolTable.Symbol
- type AnnotationType = SymbolTable.AnnotationInfo
-
final
type
NameType = SymbolTable.TypeName
Type symbols have their names of type
TypeName
.Type symbols have their names of type
TypeName
.- Definition Classes
- TypeSymbolApi → SymbolApi
-
type
TypeOfClonedSymbol = SymbolTable.ClassSymbol
- Definition Classes
- ClassSymbol → TypeSymbol → Symbol
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def GADT_SKOLEM_FLAGS: Int
-
final
var
_rawname: SymbolTable.Name
- Attributes
- protected[this]
- Definition Classes
- Symbol
-
def
abbreviatedKindString: String
String representation of symbol's kind, suitable for the masses.
-
def
accessBoundary(base: SymbolTable.Symbol): SymbolTable.Symbol
The class or term up to which this symbol is accessible, or else
enclosingRootClass
if it is public.The class or term up to which this symbol is accessible, or else
enclosingRootClass
if it is public.- Definition Classes
- Symbol
-
def
accessString: String
- Definition Classes
- HasFlags
-
final
def
accessed: SymbolTable.Symbol
The symbol accessed by this accessor (getter or setter) function.
The symbol accessed by this accessor (getter or setter) function.
- Definition Classes
- Symbol
-
def
accessedOrSelf: SymbolTable.Symbol
accessed
, if this is an accessor that should have an underlying field.accessed
, if this is an accessor that should have an underlying field. Otherwise,this
. Note that a "regular" accessor in a trait does not have a field, as an interface cannot define a field. "non-regular" vals are: early initialized or lazy vals. Eventually, we should delay introducing symbols for all val/vars until the fields (or lazyvals) phase, as they are an implementation detail that's irrelevant to type checking.- Definition Classes
- Symbol
-
final
def
accurateKindString: String
Accurate string representation of symbols' kind, suitable for developers.
Accurate string representation of symbols' kind, suitable for developers.
- Definition Classes
- Symbol
-
final
def
addAnnotation(tp: SymbolTable.Type, args: List[SymbolTable.Tree]): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(tp: SymbolTable.Type, arg1: SymbolTable.Tree, arg2: SymbolTable.Tree): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(tp: SymbolTable.Type, arg: SymbolTable.Tree): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(tp: SymbolTable.Type): PackageClassSymbol.this.type
Use that variant if you want to pass (for example) an applied type
Use that variant if you want to pass (for example) an applied type
- Definition Classes
- Symbol
-
final
def
addAnnotation(sym: SymbolTable.Symbol, args: List[SymbolTable.Tree]): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(sym: SymbolTable.Symbol, args: SymbolTable.Tree*): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(sym: SymbolTable.Symbol, arg1: SymbolTable.Tree, arg2: SymbolTable.Tree): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(sym: SymbolTable.Symbol, arg: SymbolTable.Tree): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
addAnnotation(sym: SymbolTable.Symbol): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
addAnnotation(annot: SymbolTable.AnnotationInfo): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
addChild(sym: SymbolTable.Symbol): Unit
- Definition Classes
- ClassSymbol → Symbol
-
def
addThrowsAnnotation(throwableSym: SymbolTable.Symbol): SymbolTable.Symbol
- Definition Classes
- Annotatable
-
def
alias: SymbolTable.Symbol
For a paramaccessor: a superclass paramaccessor for which this symbol is an alias, NoSymbol for all others.
For a paramaccessor: a superclass paramaccessor for which this symbol is an alias, NoSymbol for all others.
- Definition Classes
- Symbol
-
final
def
allOverriddenSymbols: List[SymbolTable.Symbol]
Returns all symbols overridden by this symbol.
-
def
alternatives: List[SymbolTable.Symbol]
The overloaded alternatives of this symbol.
-
def
ancestors: List[SymbolTable.Symbol]
All directly or indirectly inherited classes.
All directly or indirectly inherited classes.
- Definition Classes
- Symbol
-
final
def
andAlso(f: (SymbolTable.Symbol) ⇒ Unit): SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @inline()
-
def
annotations: List[SymbolTable.AnnotationInfo]
After the typer phase (before, look at the definition's Modifiers), contains the annotations attached to member a definition (class, method, type, field).
After the typer phase (before, look at the definition's Modifiers), contains the annotations attached to member a definition (class, method, type, field).
- Definition Classes
- Symbol → Annotatable → HasFlags → SymbolApi
-
def
annotationsString: String
- Definition Classes
- Symbol
-
def
anonOrRefinementString: String
- Definition Classes
- ClassSymbol
-
final
def
asClass: SymbolTable.ClassSymbol
This symbol cast to a ClassSymbol representing a class or trait.
This symbol cast to a ClassSymbol representing a class or trait.
- Definition Classes
- ClassSymbolApi → SymbolApi
- Exceptions thrown
ScalaReflectionException
ifisClass
is false.
-
def
asFreeTerm: SymbolTable.FreeTermSymbol
- Definition Classes
- SymbolContextApiImpl
-
def
asFreeType: SymbolTable.FreeTypeSymbol
- Definition Classes
- SymbolContextApiImpl
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
def
asMethod: SymbolTable.MethodSymbol
This symbol cast to a MethodSymbol.
This symbol cast to a MethodSymbol.
- Definition Classes
- SymbolApi
- Exceptions thrown
ScalaReflectionException
ifisMethod
is false.
-
def
asModule: SymbolTable.ModuleSymbol
This symbol cast to a ModuleSymbol defined by an object definition.
This symbol cast to a ModuleSymbol defined by an object definition.
- Definition Classes
- SymbolApi
- Exceptions thrown
ScalaReflectionException
ifisModule
is false.
-
final
def
asNameType(n: SymbolTable.Name): SymbolTable.TypeName
- Definition Classes
- TypeSymbol → Symbol
-
def
asTerm: SymbolTable.TermSymbol
This symbol cast to a TermSymbol.
This symbol cast to a TermSymbol.
- Definition Classes
- SymbolApi
- Exceptions thrown
ScalaReflectionException
ifisTerm
is false.
-
final
def
asType: SymbolTable.TypeSymbol
This symbol cast to a TypeSymbol.
This symbol cast to a TypeSymbol.
- Definition Classes
- TypeSymbolApi → SymbolApi
- Exceptions thrown
ScalaReflectionException
ifisType
is false.
-
final
def
assertOwner: SymbolTable.Symbol
- Definition Classes
- Symbol
-
def
associatedFile: AbstractFile
Overridden in ModuleSymbols to delegate to the module class.
Overridden in ModuleSymbols to delegate to the module class. Never null; if there is no associated file, returns NoAbstractFile.
- Definition Classes
- ClassSymbol → Symbol → SymbolApi
-
def
associatedFile_=(f: AbstractFile): Unit
- Definition Classes
- ClassSymbol → Symbol
-
def
attachments: Attachments { type Pos = Symbols.this.Position }
- Definition Classes
- Attachable
-
def
baseClasses: List[SymbolTable.Symbol]
- Definition Classes
- SymbolContextApiImpl
-
def
calculateFlagString(basis: Long): String
- Attributes
- protected
- Definition Classes
- HasFlags
-
final
def
caseFieldAccessors: List[SymbolTable.Symbol]
For a case class, the symbols of the accessor methods, one for each argument in the first parameter list of the primary constructor.
For a case class, the symbols of the accessor methods, one for each argument in the first parameter list of the primary constructor. The empty list for all other classes.
This list will be sorted to correspond to the declaration order in the constructor parameter
- Definition Classes
- Symbol
-
final
def
caseModule: SymbolTable.Symbol
The case module corresponding to this case class
The case module corresponding to this case class
- Definition Classes
- Symbol
-
def
changeNameInOwners(name: SymbolTable.Name): Unit
- Attributes
- protected[this]
- Definition Classes
- Symbol
-
def
children: Set[SymbolTable.Symbol]
If this is a sealed or local class, its known direct subclasses.
If this is a sealed or local class, its known direct subclasses. Otherwise, the empty set.
- Definition Classes
- ClassSymbol → Symbol
-
def
classBound: SymbolTable.Type
The least proper supertype of a class; includes all parent types and refinement where needed.
The least proper supertype of a class; includes all parent types and refinement where needed. You need to compute that in a situation like this: { class C extends P { ... } new C }
- Definition Classes
- Symbol
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
cloneSymbol(newOwner: SymbolTable.Symbol, newFlags: Long, newName: SymbolTable.Name): TypeOfClonedSymbol
- Definition Classes
- Symbol
-
final
def
cloneSymbol(newOwner: SymbolTable.Symbol, newFlags: Long): TypeOfClonedSymbol
- Definition Classes
- Symbol
-
final
def
cloneSymbol(newOwner: SymbolTable.Symbol): TypeOfClonedSymbol
A clone of this symbol, but with given owner.
A clone of this symbol, but with given owner.
- Definition Classes
- Symbol
-
final
def
cloneSymbol: TypeOfClonedSymbol
A clone of this symbol.
A clone of this symbol.
- Definition Classes
- Symbol
-
def
cloneSymbolImpl(owner: SymbolTable.Symbol, newFlags: Long): SymbolTable.ClassSymbol
Internal method to clone a symbol's implementation with the given flags and no info.
Internal method to clone a symbol's implementation with the given flags and no info.
- Definition Classes
- ClassSymbol → Symbol
-
def
companion: SymbolTable.Symbol
For a class: its companion object if exists.
For a class: its companion object if exists. For a module or a module class: companion class of the module if exists. For a package or a package class: NoSymbol. For all others: NoSymbol.
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
companionClass: SymbolTable.Symbol
For a module: the class with the same name in the same package.
For a module: the class with the same name in the same package. For all others: NoSymbol Note: does not work for classes owned by methods, see Namers.companionClassOf
object Foo . companionClass --> class Foo
!!! linkedClassOfClass depends on companionClass on the module class getting to the class. As presently implemented this potentially returns class for any symbol except NoSymbol.
- Definition Classes
- Symbol
-
def
companionModule: SymbolTable.Symbol
For a class: the module or case class factory with the same name in the same package.
For a class: the module or case class factory with the same name in the same package. For all others: NoSymbol Note: does not work for modules owned by methods, see Namers.companionModuleOf
class Foo . companionModule --> object Foo
- Definition Classes
- ClassSymbol → Symbol
-
final
def
companionModule0: SymbolTable.Symbol
A helper method that factors the common code used the discover a companion module of a class.
A helper method that factors the common code used the discover a companion module of a class. If a companion module exists, its symbol is returned, otherwise,
NoSymbol
is returned.- Attributes
- protected
- Definition Classes
- ClassSymbol
-
def
companionSymbol: SymbolTable.Symbol
For a module: its linked class For a plain class: its linked module or case factory.
For a module: its linked class For a plain class: its linked module or case factory. Note: does not work for modules owned by methods, see Namers.companionSymbolOf
class Foo <-- companionSymbol --> object Foo
- Definition Classes
- ClassSymbol → Symbol → SymbolApi
-
def
compileTimeOnlyMessage: Option[String]
- Definition Classes
- Symbol
-
final
def
constrParamAccessors: List[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
cookJavaRawInfo(): PackageClassSymbol.this.type
Modify term symbol's type so that a raw type C is converted to an existential C[_]
Modify term symbol's type so that a raw type C is converted to an existential C[_]
This is done in checkAccessible and overriding checks in refchecks We can't do this on class loading because it would result in infinite cycles.
- Definition Classes
- Symbol
-
def
createAbstractTypeSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.AbstractTypeSymbol
Symbol creation implementations.
Symbol creation implementations.
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createAliasTypeSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.AliasTypeSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.ClassSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createMethodSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.MethodSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createModuleClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.ModuleClassSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createModuleSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.ModuleSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createPackageClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.PackageClassSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createPackageObjectClassSymbol(pos: SymbolTable.Position, newFlags: Long): SymbolTable.PackageObjectClassSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createPackageSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.ModuleSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createRefinementClassSymbol(pos: SymbolTable.Position, newFlags: Long): SymbolTable.RefinementClassSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createTypeSkolemSymbol(name: SymbolTable.TypeName, origin: AnyRef, pos: SymbolTable.Position, newFlags: Long): SymbolTable.TypeSkolem
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createValueMemberSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.TermSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
createValueParameterSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position, newFlags: Long): SymbolTable.TermSymbol
- Attributes
- protected
- Definition Classes
- Symbol
-
def
deSkolemize: SymbolTable.Symbol
If this symbol is a type parameter skolem (not an existential skolem!) its corresponding type parameter, otherwise this
If this symbol is a type parameter skolem (not an existential skolem!) its corresponding type parameter, otherwise this
- Definition Classes
- Symbol
-
def
debugFlagString: String
- Definition Classes
- Symbol
-
def
debugLocationString: String
- Definition Classes
- Symbol
-
def
decodedName: String
The decoded name of the symbol, e.g.
The decoded name of the symbol, e.g.
==
instead of$eq$eq
.- Definition Classes
- Symbol
-
def
defString: String
String representation of symbol's definition.
String representation of symbol's definition. It uses the symbol's raw info to avoid forcing types.
- Definition Classes
- Symbol
-
def
defStringSeenAs(info: SymbolTable.Type): String
String representation of symbol's definition, using the supplied info rather than the symbol's.
String representation of symbol's definition, using the supplied info rather than the symbol's.
- Definition Classes
- Symbol
-
def
deprecatedInheritanceMessage: Option[String]
- Definition Classes
- Symbol
-
def
deprecatedInheritanceVersion: Option[String]
- Definition Classes
- Symbol
-
def
deprecatedOverridingMessage: Option[String]
- Definition Classes
- Symbol
-
def
deprecatedOverridingVersion: Option[String]
- Definition Classes
- Symbol
-
def
deprecatedParamName: Option[SymbolTable.TermName]
- Definition Classes
- Symbol
-
def
deprecatedParamVersion: Option[String]
- Definition Classes
- Symbol
-
def
deprecationMessage: Option[String]
- Definition Classes
- Symbol
-
def
deprecationVersion: Option[String]
- Definition Classes
- Symbol
-
def
derivedValueClassUnbox: SymbolTable.Symbol
If this is a derived value class, return its unbox method or NoSymbol if it does not exist.
If this is a derived value class, return its unbox method or NoSymbol if it does not exist.
- Definition Classes
- ClassSymbol → Symbol
-
def
effectiveOwner: SymbolTable.Symbol
The owner, skipping package objects.
The owner, skipping package objects.
- Definition Classes
- Symbol
-
def
elisionLevel: Option[Int]
- Definition Classes
- Symbol
-
def
enclClass: SymbolTable.Symbol
The next enclosing class.
The next enclosing class.
- Definition Classes
- Symbol
-
def
enclClassChain: collection.immutable.Nil.type
- Definition Classes
- PackageClassSymbol → ClassSymbol → Symbol
-
def
enclMethod: SymbolTable.Symbol
The next enclosing method.
The next enclosing method.
- Definition Classes
- Symbol
-
def
enclosingPackage: SymbolTable.Symbol
The package containing this symbol, or NoSymbol if there is not one.
The package containing this symbol, or NoSymbol if there is not one.
- Definition Classes
- Symbol
-
def
enclosingPackageClass: SymbolTable.Symbol
The package class containing this symbol, or NoSymbol if there is not one.
The package class containing this symbol, or NoSymbol if there is not one. TODO: formulate as enclosingSuchThat, after making sure we can start with current symbol rather than owner. TODO: Also harmonize with enclClass, enclMethod etc.
- Definition Classes
- Symbol
-
def
enclosingRootClass: SymbolTable.Symbol
The package class containing this symbol, or NoSymbol if there is not one.
The package class containing this symbol, or NoSymbol if there is not one.
- Definition Classes
- Symbol
-
final
def
enclosingSuchThat(p: (SymbolTable.Symbol) ⇒ Boolean): SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @inline()
-
def
enclosingTopLevelClass: SymbolTable.Symbol
The top-level class containing this symbol, using the current owner chain.
The top-level class containing this symbol, using the current owner chain.
- Definition Classes
- Symbol
-
def
encodedName: String
The name of the symbol before decoding, e.g.
The name of the symbol before decoding, e.g.
$eq$eq
instead of==
.- Definition Classes
- Symbol
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
existentialBound: SymbolTable.Type
Overridden in subclasses for which it makes sense.
Overridden in subclasses for which it makes sense.
- Definition Classes
- ClassSymbol → TypeSymbol → Symbol
-
def
existentialToString: String
String representation of existentially bound variable
String representation of existentially bound variable
- Definition Classes
- Symbol
-
def
exists: Boolean
- Definition Classes
- Symbol
-
def
expandName(base: SymbolTable.Symbol): Unit
change name by appending $$<fully-qualified-name-of-class
base
> Do the same for any accessed symbols or setters/getters.change name by appending $$<fully-qualified-name-of-class
base
> Do the same for any accessed symbols or setters/getters. Implementation in TermSymbol.- Definition Classes
- Symbol
-
final
def
extendedOverriddenSymbols: List[SymbolTable.Symbol]
Returns all symbols overridden by this symbol, plus all matching symbols defined in parents of the selftype.
Returns all symbols overridden by this symbol, plus all matching symbols defined in parents of the selftype.
- Definition Classes
- Symbol
-
def
failIfStub(): Unit
Raises a
MissingRequirementError
if this symbol is aStubSymbol
Raises a
MissingRequirementError
if this symbol is aStubSymbol
- Definition Classes
- Symbol
-
def
filter(cond: (SymbolTable.Symbol) ⇒ Boolean): SymbolTable.Symbol
Filters the underlying alternatives (or a single-element list composed of the symbol itself if the symbol is not overloaded).
-
def
filterAnnotations(p: (SymbolTable.AnnotationInfo) ⇒ Boolean): PackageClassSymbol.this.type
- Definition Classes
- Symbol → Annotatable
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
def
firstParam: SymbolTable.Symbol
The first parameter to the first argument list of this method, or NoSymbol if inapplicable.
The first parameter to the first argument list of this method, or NoSymbol if inapplicable.
- Definition Classes
- Symbol
-
def
flagBitsToString(bits: Long): String
- Definition Classes
- HasFlags
-
def
flagMask: Long
The default mask determining which flags to display.
-
def
flagString(mask: Long): String
- Definition Classes
- HasFlags
-
def
flagString: String
The printable representation of this entity's flags and access boundary, restricted to flags in the given mask.
The printable representation of this entity's flags and access boundary, restricted to flags in the given mask.
- Definition Classes
- HasFlags
-
final
def
flags: Long
Though both Symbol and Modifiers widen this method to public, it's defined protected here to give us the option in the future to route flag methods through accessors and disallow raw flag manipulation.
Though both Symbol and Modifiers widen this method to public, it's defined protected here to give us the option in the future to route flag methods through accessors and disallow raw flag manipulation. And after that, perhaps, on some magical day: a typesafe enumeration.
-
def
flagsExplanationString: String
- Definition Classes
- Symbol
-
def
flags_=(fs: Long): Unit
- Definition Classes
- Symbol
-
final
def
flatOwnerInfo: SymbolTable.Type
Returns the rawInfo of the owner.
Returns the rawInfo of the owner. If the current phase has flat classes, it first applies all pending type maps to this symbol.
assume this is the ModuleSymbol for B in the following definition: package p { class A { object B { val x = 1 } } }
The owner after flatten is "package p" (see "def owner"). The flatten type map enters symbol B in the decls of p. So to find a linked symbol ("object B" or "class B") we need to apply flatten to B first. Fixes #2470.
- Attributes
- protected
- Definition Classes
- Symbol
-
def
flattenedName: SymbolTable.TypeName
- Attributes
- protected[this]
- Definition Classes
- ClassSymbol → Symbol
-
final
def
fold[T](none: ⇒ T)(f: (SymbolTable.Symbol) ⇒ T): T
- Definition Classes
- Symbol
- Annotations
- @inline()
-
final
def
freshExistential(suffix: String, id: Int): SymbolTable.TypeSymbol
- Definition Classes
- Symbol
-
def
fullLocationString: String
- Definition Classes
- Symbol
-
final
def
fullName: String
The encoded full path name of this symbol, where outer names and inner names are separated by periods.
-
final
def
fullName(separator: Char): String
The encoded full path name of this symbol, where outer names and inner names are separated by
separator
characters.The encoded full path name of this symbol, where outer names and inner names are separated by
separator
characters. Never translates expansions of operators back to operator symbol. Never adds id. Drops package objects.- Definition Classes
- Symbol
-
def
fullNameAsName(separator: Char): SymbolTable.Name
- Definition Classes
- Symbol
-
def
fullNameString: String
- Definition Classes
- Symbol
-
def
getAndRemoveAttachment[T](implicit arg0: ClassTag[T]): Option[T]
- Definition Classes
- Attachable
-
def
getAnnotation(cls: SymbolTable.Symbol): Option[SymbolTable.AnnotationInfo]
- Definition Classes
- Annotatable
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
getFlag(mask: Long): Long
In our current architecture, symbols for top-level classes and modules are created as dummies.
In our current architecture, symbols for top-level classes and modules are created as dummies. Package symbols just call newClass(name) or newModule(name) and consider their job done.
In order for such a dummy to provide meaningful info (e.g. a list of its members), it needs to go through unpickling. Unpickling is a process of reading Scala metadata from ScalaSignature annotations and assigning it to symbols and types.
A single unpickling session takes a top-level class or module, parses the ScalaSignature annotation and then reads metadata for the unpicklee, its companion (if any) and all their members recursively (i.e. the pickle not only contains info about directly nested classes/modules, but also about classes/modules nested into those and so on).
Unpickling is triggered automatically whenever info (info in compiler parlance) is called. This happens because package symbols assign completer thunks to the dummies they create. Therefore metadata loading happens lazily and transparently.
Almost transparently. Unfortunately metadata isn't limited to just signatures (i.e. lists of members). It also includes flags (which determine e.g. whether a class is sealed or not), annotations and privateWithin. This gives rise to unpleasant effects like in scala/bug#6277, when a flag test called on an uninitialize symbol produces incorrect results.
One might think that the solution is simple: automatically call the completer whenever one needs flags, annotations and privateWithin - just like it's done for info. Unfortunately, this leads to weird crashes in scalac, and currently we can't attempt to fix the core of the compiler risk stability a few weeks before the final release. upd. Haha, "a few weeks before the final release". This surely sounds familiar :)
However we do need to fix this for runtime reflection, since this idiosyncrasy is not something we'd like to expose to reflection users. Therefore a proposed solution is to check whether we're in a runtime reflection universe, and if yes and if we've not yet loaded the requested info, then to commence initialization.
- Definition Classes
- Symbol
-
def
getter: SymbolTable.Symbol
- Definition Classes
- SymbolContextApiImpl
-
final
def
getterIn(base: SymbolTable.Symbol): SymbolTable.Symbol
The getter of this value or setter definition in class
base
, or NoSymbol if none exists.The getter of this value or setter definition in class
base
, or NoSymbol if none exists.- Definition Classes
- Symbol
-
def
getterName: SymbolTable.TermName
- Definition Classes
- Symbol
-
def
hasAbstractFlag: Boolean
- Definition Classes
- HasFlags
-
final
def
hasAccessBoundary: Boolean
Does symbol have a private or protected qualifier set?
-
def
hasAccessorFlag: Boolean
- Definition Classes
- HasFlags
-
final
def
hasAllFlags(mask: Long): Boolean
Does symbol have ALL the flags in
mask
set? -
def
hasAnnotation(cls: SymbolTable.Symbol): Boolean
Tests for, get, or remove an annotation
Tests for, get, or remove an annotation
- Definition Classes
- Annotatable
-
def
hasAttachment[T](implicit arg0: ClassTag[T]): Boolean
- Definition Classes
- Attachable
-
def
hasBridgeAnnotation: Boolean
- Definition Classes
- Symbol
-
def
hasCompleteInfo: Boolean
- Definition Classes
- Symbol
-
def
hasDefault: Boolean
- Definition Classes
- HasFlags
-
def
hasDeprecatedInheritanceAnnotation: Boolean
- Definition Classes
- Symbol
-
def
hasDeprecatedOverridingAnnotation: Boolean
- Definition Classes
- Symbol
-
def
hasFlag(mask: Int): Boolean
- Definition Classes
- Symbol
-
final
def
hasFlag(mask: Long): Boolean
Does symbol have ANY flag in
mask
set? -
final
def
hasGetter: Boolean
- Definition Classes
- Symbol
-
def
hasJavaAnnotationFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasJavaEnumFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasMeaninglessName: Boolean
If the name of the symbol's owner should be used when you care about seeing an interesting name: in such cases this symbol is e.g.
If the name of the symbol's owner should be used when you care about seeing an interesting name: in such cases this symbol is e.g. a method parameter with a synthetic name, a constructor named "this", an object "package", etc. The kind string, if non-empty, will be phrased relative to the name of the owner.
- Definition Classes
- Symbol
-
def
hasMigrationAnnotation: Boolean
- Definition Classes
- Symbol
-
def
hasModuleFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasNoFlags(mask: Long): Boolean
Whether this entity has NONE of the flags in the given mask.
Whether this entity has NONE of the flags in the given mask.
- Definition Classes
- HasFlags
-
def
hasOnlyBottomSubclasses: Boolean
Can this symbol only be subclassed by bottom classes? This is assessed to be the case if it is final, and any type parameters are invariant.
Can this symbol only be subclassed by bottom classes? This is assessed to be the case if it is final, and any type parameters are invariant.
- Definition Classes
- Symbol
-
def
hasPackageFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasRawInfo: Boolean
- Definition Classes
- Symbol
-
def
hasSelfType: Boolean
- Definition Classes
- Symbol
-
def
hasStableFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasStaticFlag: Boolean
- Definition Classes
- HasFlags
-
def
hasTransOwner(sym: SymbolTable.Symbol): Boolean
Same as
ownerChain contains sym
but more efficient, and with a twist for refinement classes (see RefinementClassSymbol.)Same as
ownerChain contains sym
but more efficient, and with a twist for refinement classes (see RefinementClassSymbol.)- Definition Classes
- Symbol
-
final
def
hasTypeAt(pid: Int): Boolean
Was symbol's type updated during given phase?
Was symbol's type updated during given phase?
- Definition Classes
- Symbol
-
final
def
hasVolatileType: Boolean
- Definition Classes
- Symbol
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
val
id: Int
- Definition Classes
- Symbol
-
final
def
idString: String
If settings.uniqid is set, the symbol's id, else ""
If settings.uniqid is set, the symbol's id, else ""
- Definition Classes
- Symbol
-
def
implicitAmbiguousMsg: Option[String]
- Definition Classes
- Symbol
-
def
implicitMembers: SymbolTable.Scope
- Definition Classes
- ModuleClassSymbol
-
def
implicitNotFoundMsg: Option[String]
- Definition Classes
- Symbol
-
def
info: SymbolTable.Type
Get type info associated with symbol at current phase, after ensuring that symbol is initialized (i.e.
-
def
infoIn(site: SymbolTable.Type): SymbolTable.Type
The type signature of this symbol seen as a member of given type
site
.The type signature of this symbol seen as a member of given type
site
.- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
final
def
infoString(tp: SymbolTable.Type): String
String representation of symbol's definition following its name
String representation of symbol's definition following its name
- Definition Classes
- Symbol
-
def
info_=(tp: SymbolTable.Type): Unit
- Definition Classes
- TypeSymbol → Symbol
-
def
infosString: String
- Definition Classes
- Symbol
-
def
initFlags(mask: Long): PackageClassSymbol.this.type
Set the symbol's flags to the given value, asserting that the previous value was 0.
Set the symbol's flags to the given value, asserting that the previous value was 0.
- Definition Classes
- Symbol
-
final
def
initialize: PackageClassSymbol.this.type
Initialize the symbol
Initialize the symbol
- Definition Classes
- Symbol
-
def
isAbstract: Boolean
Is this symbol abstract (i.e.
Is this symbol abstract (i.e. an abstract class, an abstract method, value or type member)?
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isAbstractClass: Boolean
Does this symbol represent an abstract class?
Does this symbol represent an abstract class?
- Definition Classes
- ClassSymbol → ClassSymbolApi → Symbol
-
def
isAbstractOverride: Boolean
- Definition Classes
- HasFlags
-
final
def
isAbstractType: Boolean
Does this symbol represent the definition of an abstract type?
Does this symbol represent the definition of an abstract type?
- Definition Classes
- ClassSymbol → TypeSymbol → TypeSymbolApi → Symbol
-
def
isAccessor: Boolean
Qualities of Terms, always false for TypeSymbols.
Qualities of Terms, always false for TypeSymbols.
- Definition Classes
- Symbol
-
final
def
isAliasType: Boolean
Does this symbol represent the definition of a type alias?
Does this symbol represent the definition of a type alias?
- Definition Classes
- ClassSymbol → TypeSymbolApi → Symbol
-
def
isAnonOrRefinementClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
def
isAnonymousClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
final
def
isAnonymousFunction: Boolean
- Definition Classes
- Symbol
-
def
isAnyOverride: Boolean
- Definition Classes
- HasFlags
-
def
isArtifact: Boolean
- Definition Classes
- HasFlags
-
final
def
isAuxiliaryConstructor: Boolean
Does this symbol denote an auxiliary constructor of its enclosing class?
Does this symbol denote an auxiliary constructor of its enclosing class?
- Definition Classes
- Symbol
-
def
isBottomClass: Boolean
The bottom classes are Nothing and Null, found in Definitions.
The bottom classes are Nothing and Null, found in Definitions.
- Definition Classes
- Symbol
-
def
isBottomSubClass(that: SymbolTable.Symbol): Boolean
Is this class symbol Null or Nothing, and (if Null) is
that
inhabited by null? If this is Nothing, of course, it is a subclass ofthat
by definition.Is this class symbol Null or Nothing, and (if Null) is
that
inhabited by null? If this is Nothing, of course, it is a subclass ofthat
by definition.TODO - what is implied by the fact that AnyVal now has infinitely many non-bottom subclasses, not only 9?
- Definition Classes
- Symbol
-
def
isBridge: Boolean
- Definition Classes
- Symbol
-
def
isByNameParam: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isCapturedVariable: Boolean
- Definition Classes
- Symbol
-
def
isCase: Boolean
- Definition Classes
- HasFlags
-
def
isCaseAccessor: Boolean
- Definition Classes
- HasFlags
-
def
isCaseAccessorMethod: Boolean
Qualities of MethodSymbols, always false for TypeSymbols and other TermSymbols.
Qualities of MethodSymbols, always false for TypeSymbols and other TermSymbols.
- Definition Classes
- Symbol
-
final
def
isCaseApplyOrUnapply: Boolean
Is this symbol a synthetic apply or unapply method in a companion object of a case class?
Is this symbol a synthetic apply or unapply method in a companion object of a case class?
- Definition Classes
- Symbol
-
def
isCaseClass: Boolean
Does this symbol represent a case class?
Does this symbol represent a case class?
- Definition Classes
- ClassSymbol → ClassSymbolApi → Symbol
-
final
def
isCaseCopy: Boolean
Is this symbol a synthetic copy method in a case class?
Is this symbol a synthetic copy method in a case class?
- Definition Classes
- Symbol
-
final
def
isClass: Boolean
Does this symbol represent the definition of a class or trait? If yes,
isType
is also guaranteed to be true.Does this symbol represent the definition of a class or trait? If yes,
isType
is also guaranteed to be true.- Definition Classes
- ClassSymbolApi → SymbolApi
-
def
isClassConstructor: Boolean
- Definition Classes
- Symbol
-
def
isClassLocalToConstructor: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
def
isCoDefinedWith(that: SymbolTable.Symbol): Boolean
Is this symbol defined in the same scope and compilation unit as
that
symbol?Is this symbol defined in the same scope and compilation unit as
that
symbol?- Definition Classes
- Symbol
-
def
isCompileTimeOnly: Boolean
- Definition Classes
- Symbol
-
def
isConcreteClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
final
def
isConstant: Boolean
Is this symbol a constant?
Is this symbol a constant?
- Definition Classes
- Symbol
-
def
isConstructor: Boolean
Does this method represent a constructor?
-
final
def
isContravariant: Boolean
Is the type parameter represented by this symbol contravariant?
Is the type parameter represented by this symbol contravariant?
- Definition Classes
- ClassSymbol → TypeSymbol → TypeSymbolApi → Symbol
-
def
isCovariant: Boolean
Is the type parameter represented by this symbol contravariant?
Is the type parameter represented by this symbol contravariant?
- Definition Classes
- TypeSymbol → TypeSymbolApi → Symbol
-
def
isDefaultGetter: Boolean
- Definition Classes
- Symbol
-
def
isDeferred: Boolean
- Definition Classes
- HasFlags
-
final
def
isDefinedInPackage: Boolean
- Definition Classes
- Symbol
-
final
def
isDelambdafyFunction: Boolean
- Definition Classes
- Symbol
-
final
def
isDelambdafyTarget: Boolean
- Definition Classes
- Symbol
-
def
isDeprecated: Boolean
- Definition Classes
- Symbol
-
final
def
isDerivedValueClass: Boolean
- Definition Classes
- Symbol
-
def
isEarlyInitialized: Boolean
- Definition Classes
- Symbol
-
def
isEffectiveRoot: Boolean
Is this symbol an effective root for fullname string?
Is this symbol an effective root for fullname string?
- Definition Classes
- Symbol
-
final
def
isEffectivelyFinal: Boolean
Is this symbol effectively final? I.e, it cannot be overridden
Is this symbol effectively final? I.e, it cannot be overridden
- Definition Classes
- Symbol
-
final
def
isEffectivelyFinalOrNotOverridden: Boolean
Is this symbol effectively final or a concrete term member of sealed class whose children do not override it
Is this symbol effectively final or a concrete term member of sealed class whose children do not override it
- Definition Classes
- Symbol
-
def
isEmptyPackage: Boolean
- Definition Classes
- Symbol
-
def
isEmptyPackageClass: Boolean
- Definition Classes
- Symbol
-
def
isEmptyPrefix: Boolean
- Definition Classes
- Symbol
-
final
def
isErroneous: Boolean
- Definition Classes
- Symbol
-
final
def
isError: Boolean
- Definition Classes
- Symbol
-
def
isExistential: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isExistentialSkolem: Boolean
- Definition Classes
- Symbol
-
def
isExistentiallyBound: Boolean
- Definition Classes
- TypeSymbol → Symbol
-
def
isFBounded: Boolean
- Definition Classes
- Symbol
-
def
isField: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isFinal: Boolean
- Definition Classes
- HasFlags
-
def
isFreeTerm: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isFreeType: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isGADTSkolem: Boolean
- Definition Classes
- Symbol
-
def
isGetter: Boolean
- Definition Classes
- Symbol
-
def
isHigherOrderTypeParameter: Boolean
- Definition Classes
- Symbol
-
def
isImplementationArtifact: Boolean
Does this symbol represent an implementation artifact that isn't meant for public use? Examples of such artifacts are erasure bridges and outer fields.
Does this symbol represent an implementation artifact that isn't meant for public use? Examples of such artifacts are erasure bridges and outer fields.
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isImplicit: Boolean
- Definition Classes
- HasFlags
-
def
isInDefaultNamespace: Boolean
- Definition Classes
- Symbol
-
final
def
isIncompleteIn(base: SymbolTable.Symbol): Boolean
A a member of class
base
is incomplete if (1) it is declared deferred or (2) it is abstract override and its super symbol inbase
is nonexistent or incomplete.A a member of class
base
is incomplete if (1) it is declared deferred or (2) it is abstract override and its super symbol inbase
is nonexistent or incomplete.- Definition Classes
- Symbol
-
final
def
isInitialized: Boolean
- Definition Classes
- Symbol
-
final
def
isInitializedToDefault: Boolean
- Definition Classes
- Symbol
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
isInterface: Boolean
- Definition Classes
- HasFlags
-
final
def
isInterpreterWrapper: Boolean
Does this symbol denote a wrapper created by the repl?
Does this symbol denote a wrapper created by the repl?
- Definition Classes
- Symbol
-
def
isInvariant: Boolean
- Definition Classes
- Symbol
-
def
isJava: Boolean
Is this symbol defined by Java?
Is this symbol defined by Java?
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isJavaAnnotation: Boolean
Does this symbol represent a java annotation interface?
Does this symbol represent a java annotation interface?
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isJavaDefined: Boolean
- Definition Classes
- HasFlags
-
def
isJavaEnum: Boolean
Does this symbol represent a java enum class or a java enum value?
Does this symbol represent a java enum class or a java enum value?
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isJavaInterface: Boolean
- Definition Classes
- ClassSymbol → Symbol
- def isLabel: Boolean
-
def
isLazy: Boolean
- Definition Classes
- HasFlags
-
final
def
isLess(that: SymbolTable.Symbol): Boolean
A total ordering between symbols that refines the class inheritance graph (i.e.
A total ordering between symbols that refines the class inheritance graph (i.e. subclass.isLess(superclass) always holds). the ordering is given by: (_.isType, -_.baseTypeSeq.length) for type symbols, followed by
id
.- Definition Classes
- Symbol
-
def
isLessAccessibleThan(other: SymbolTable.Symbol): Boolean
- Definition Classes
- Symbol
-
def
isLifted: Boolean
- Definition Classes
- HasFlags
-
def
isLiftedMethod: Boolean
- Definition Classes
- Symbol
-
def
isLocalClass: Boolean
Is this class locally defined? A class is local, if
Is this class locally defined? A class is local, if
- it is anonymous, or
- its owner is a value
- it is defined within a local class
- Definition Classes
- ClassSymbol → Symbol
-
def
isLocalDummy: Boolean
- Definition Classes
- Symbol
-
final
def
isLocalToBlock: Boolean
Is this symbol defined in a block?
Is this symbol defined in a block?
- Definition Classes
- Symbol
-
def
isLocalToThis: Boolean
- Definition Classes
- HasFlags
-
final
def
isLocatable: Boolean
Can this symbol be loaded by a reflective mirror?
Can this symbol be loaded by a reflective mirror?
Scalac relies on
ScalaSignature' annotation to retain symbols across compilation runs. Such annotations (also called "pickles") are applied on top-level classes and include information about all symbols reachable from the annotee. However, local symbols (e.g. classes or definitions local to a block) are typically unreachable and information about them gets lost.
This method is useful for macro writers who wish to save certain ASTs to be used at runtime. With
isLocatable' it's possible to check whether a tree can be retained as is, or it needs special treatment.
- Definition Classes
- Symbol
-
def
isMacro: Boolean
- Definition Classes
- HasFlags
-
def
isMethod: Boolean
Does this symbol represent the definition of a method? If yes,
isTerm
is also guaranteed to be true.Does this symbol represent the definition of a method? If yes,
isTerm
is also guaranteed to be true.- Definition Classes
- SymbolApi
-
final
def
isMethodWithExtension: Boolean
- Definition Classes
- Symbol
-
def
isMixinConstructor: Boolean
- Definition Classes
- Symbol
-
def
isModule: Boolean
Does this symbol represent the definition of a module (i.e.
Does this symbol represent the definition of a module (i.e. it results from an object definition?). If yes,
isTerm
is also guaranteed to be true.- Definition Classes
- SymbolApi
-
def
isModuleClass: Boolean
Does this symbol represent the definition of a class implicitly associated with an object definition (module class in scala compiler parlance)? If yes,
isType
is also guaranteed to be true.Does this symbol represent the definition of a class implicitly associated with an object definition (module class in scala compiler parlance)? If yes,
isType
is also guaranteed to be true.- Definition Classes
- ModuleClassSymbol → ClassSymbol → SymbolApi
-
def
isModuleNotMethod: Boolean
Nested modules with a non-static owner receive the METHOD flag during UnCurry's info transform.
Nested modules with a non-static owner receive the METHOD flag during UnCurry's info transform. (They are replaced by a ClassDef and DefDef for the module accessor during the fields phase.)
Note: the METHOD flag is added lazily in the info transformer of the UnCurry phase. This means that forcing the
sym.info
may change the value ofsym.isMethod
. Forcing the info is in the responsibility of the caller. Doing it eagerly here was tried (0ccdb151f) but has proven to lead to bugs (scala/bug#8907).Here's an example where one can see all four of FF FT TF TT for (isStatic, isMethod) at various phases.
trait A1 { case class Quux() } object A2 extends A1 { object Flax } // -- namer object Quux in trait A1 // -M flatten object Quux in trait A1 // S- flatten object Flax in object A2 // -M posterasure object Quux in trait A1 // -M jvm object Quux in trait A1 // SM jvm object Quux in object A2
So "isModuleNotMethod" exists not for its achievement in brevity, but to encapsulate the relevant condition.
- Definition Classes
- Symbol
-
def
isModuleOrModuleClass: Boolean
- Definition Classes
- Symbol
-
final
def
isModuleVar: Boolean
- Definition Classes
- Symbol
-
final
def
isMonomorphicType: Boolean
Is symbol a monomorphic type? assumption: if a type starts out as monomorphic, it will not acquire type parameters in later phases.
Is symbol a monomorphic type? assumption: if a type starts out as monomorphic, it will not acquire type parameters in later phases.
- Definition Classes
- Symbol
-
def
isMutable: Boolean
- Definition Classes
- HasFlags
-
def
isMutableVal: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isNestedClass: Boolean
Is this class nested in another class or module (not a package).
Is this class nested in another class or module (not a package). Includes locally defined classes.
- Definition Classes
- ClassSymbol → Symbol
-
final
def
isNestedIn(that: SymbolTable.Symbol): Boolean
A partial ordering between symbols.
A partial ordering between symbols. (this isNestedIn that) holds iff this symbol is defined within a class or method defining that symbol
- Definition Classes
- Symbol
-
final
def
isNonBottomSubClass(that: SymbolTable.Symbol): Boolean
Is this class symbol a subclass of that symbol, and is this class symbol also different from Null or Nothing?
Is this class symbol a subclass of that symbol, and is this class symbol also different from Null or Nothing?
- Definition Classes
- TypeSymbol → Symbol
-
final
def
isNonClassType: Boolean
A Type, but not a Class.
A Type, but not a Class.
- Definition Classes
- ClassSymbol → TypeSymbol → Symbol
-
def
isNumeric: Boolean
Does this symbol represent the definition of a numeric value class? Namely, is it one of scala.Double, scala.Float, scala.Long, scala.Int, scala.Char, scala.Short, scala.Byte, scala.Unit or scala.Boolean?
Does this symbol represent the definition of a numeric value class? Namely, is it one of scala.Double, scala.Float, scala.Long, scala.Int, scala.Char, scala.Short, scala.Byte, scala.Unit or scala.Boolean?
- Definition Classes
- ClassSymbol → ClassSymbolApi
-
final
def
isNumericSubClass(that: SymbolTable.Symbol): Boolean
- Definition Classes
- Symbol
-
def
isNumericValueClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
final
def
isOmittablePrefix: Boolean
Conditions where we omit the prefix when printing a symbol, to avoid unpleasantries like Predef.String, $iw.$iw.Foo and <empty>.Bippy.
Conditions where we omit the prefix when printing a symbol, to avoid unpleasantries like Predef.String, $iw.$iw.Foo and <empty>.Bippy.
- Definition Classes
- Symbol
-
def
isOnlyRefinementMember: Boolean
Is this a term symbol only defined in a refinement (so that it needs to be accessed by reflection)?
Is this a term symbol only defined in a refinement (so that it needs to be accessed by reflection)?
- Definition Classes
- Symbol
-
final
def
isOuterAccessor: Boolean
Is this symbol an accessor method for outer?
Is this symbol an accessor method for outer?
- Definition Classes
- Symbol
-
final
def
isOuterField: Boolean
Is this symbol an accessor method for outer?
Is this symbol an accessor method for outer?
- Definition Classes
- Symbol
-
final
def
isOuterParam: Boolean
Is this symbol an outer parameter in a constructor
Is this symbol an outer parameter in a constructor
- Definition Classes
- Symbol
-
def
isOverloaded: Boolean
- Definition Classes
- Symbol
-
def
isOverloadedMethod: Boolean
Used to provide a better error message for
asMethod
.Used to provide a better error message for
asMethod
.- Attributes
- protected
- Definition Classes
- SymbolApi
-
final
def
isOverridableMember: Boolean
- Definition Classes
- Symbol
-
def
isOverride: Boolean
- Definition Classes
- HasFlags
-
final
def
isOverridingSymbol: Boolean
- Definition Classes
- Symbol
-
def
isPackageClass: Boolean
Package/package object tests
Package/package object tests
- Definition Classes
- PackageClassSymbol → ClassSymbol → Symbol → SymbolApi
-
def
isPackageObject: Boolean
- Definition Classes
- Symbol
-
def
isPackageObjectClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
def
isPackageObjectOrClass: Boolean
- Definition Classes
- Symbol
-
def
isParamAccessor: Boolean
- Definition Classes
- HasFlags
-
def
isParamWithDefault: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isParameter: Boolean
- Definition Classes
- HasFlags
-
final
def
isPatternTypeVariable: Boolean
- Definition Classes
- Symbol
-
final
def
isPossibleInRefinement: Boolean
- Definition Classes
- Symbol
-
final
def
isPrimaryConstructor: Boolean
Does this symbol denote the primary constructor of its enclosing class?
Does this symbol denote the primary constructor of its enclosing class?
- Definition Classes
- Symbol
-
def
isPrimitive: Boolean
Does this symbol represent the definition of a primitive class? Namely, is it one of scala.Double, scala.Float, scala.Long, scala.Int, scala.Char, scala.Short, scala.Byte, scala.Unit or scala.Boolean?
Does this symbol represent the definition of a primitive class? Namely, is it one of scala.Double, scala.Float, scala.Long, scala.Int, scala.Char, scala.Short, scala.Byte, scala.Unit or scala.Boolean?
- Definition Classes
- ClassSymbol → ClassSymbolApi
-
def
isPrimitiveValueClass: Boolean
- Definition Classes
- ClassSymbol → Symbol
-
def
isPrivate: Boolean
- Definition Classes
- HasFlags
-
def
isPrivateLocal: Boolean
- Definition Classes
- HasFlags
-
def
isPrivateThis: Boolean
Does this symbol represent a declaration or definition written in a source file as
private[this]
or generated in tree/symbol form with the combination of flags LOCAL and PRIVATE? If yes,isPrivate
is guaranteed to be true.Does this symbol represent a declaration or definition written in a source file as
private[this]
or generated in tree/symbol form with the combination of flags LOCAL and PRIVATE? If yes,isPrivate
is guaranteed to be true.- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isProtected: Boolean
- Definition Classes
- HasFlags
-
def
isProtectedLocal: Boolean
- Definition Classes
- HasFlags
-
def
isProtectedThis: Boolean
Does this symbol represent a declaration or definition written in a source file as
protected[this]
or generated in tree/symbol form with the combination of flags LOCAL and PROTECTED? If yes,isProtected
is guaranteed to be true,Does this symbol represent a declaration or definition written in a source file as
protected[this]
or generated in tree/symbol form with the combination of flags LOCAL and PROTECTED? If yes,isProtected
is guaranteed to be true,- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
def
isPublic: Boolean
- Definition Classes
- HasFlags
-
def
isRefinementClass: Boolean
- Definition Classes
- Symbol
-
def
isRoot: Boolean
Overridden in custom objects in Definitions
Overridden in custom objects in Definitions
- Definition Classes
- Symbol
-
def
isRootPackage: Boolean
- Definition Classes
- Symbol
-
def
isRootSymbol: Boolean
- Definition Classes
- Symbol
-
def
isSealed: Boolean
- Definition Classes
- HasFlags
-
def
isSerializable: Boolean
- Definition Classes
- Symbol
-
def
isSetter: Boolean
- Definition Classes
- Symbol
-
def
isSetterParameter: Boolean
- Definition Classes
- Symbol
-
def
isSingletonExistential: Boolean
- Definition Classes
- Symbol
-
def
isSkolem: Boolean
- Definition Classes
- Symbol
-
def
isSourceMethod: Boolean
- Definition Classes
- Symbol
-
def
isSpecialized: Boolean
- Definition Classes
- HasFlags
-
final
def
isStable: Boolean
Does this symbol denote a stable value, ignoring volatility?
Does this symbol denote a stable value, ignoring volatility?
Stability and volatility are checked separately to allow volatile paths in patterns that amount to equality checks. scala/bug#6815
- Definition Classes
- Symbol
-
def
isStatic: Boolean
Is this symbol static (i.e.
Is this symbol static (i.e. with no outer instance)? Q: When exactly is a sym marked as STATIC? A: If it's a member of a toplevel object, or of an object contained in a toplevel object, or any number of levels deep. http://groups.google.com/group/scala-internals/browse_thread/thread/d385bcd60b08faf6
TODO: should this only be invoked on class / module symbols? because there's also
isStaticMember
.Note: the result of
isStatic
changes over time.- Lambdalift local definitions to the class level, the
owner
field is modified. object T { def foo { object O } } After lambdalift, the OModule.isStatic is true. - After flatten, nested classes are moved to the package level. Invoking
owner
on a class returns a package class, for whichisStaticOwner
is true. For example, class C { object O } OModuleClass.isStatic is true after flatten. Using phase travel to get before flatten, methodowner
returns the class C.
Why not make a stable version of
isStatic
? Maybe some parts of the compiler depend on the current implementation. - Lambdalift local definitions to the class level, the
-
final
def
isStaticConstructor: Boolean
Is this symbol a static constructor?
Is this symbol a static constructor?
- Definition Classes
- Symbol
-
final
def
isStaticMember: Boolean
Is this symbol a static member of its class? (i.e.
Is this symbol a static member of its class? (i.e. needs to be implemented as a Java static?)
- Definition Classes
- Symbol
-
def
isStaticModule: Boolean
- Definition Classes
- Symbol
-
final
def
isStaticOwner: Boolean
Does this symbol denote a class that defines static symbols?
Does this symbol denote a class that defines static symbols?
- Definition Classes
- Symbol
-
def
isStrictFP: Boolean
- Definition Classes
- Symbol
-
final
def
isStructuralRefinement: Boolean
Is this class or type defined as a structural refinement type?
Is this class or type defined as a structural refinement type?
- Definition Classes
- Symbol
-
final
def
isStructuralRefinementMember: Boolean
- Definition Classes
- Symbol
-
def
isSubClass(that: SymbolTable.Symbol): Boolean
Overridden in NullClass and NothingClass for custom behavior.
Overridden in NullClass and NothingClass for custom behavior.
- Definition Classes
- Symbol
-
def
isSuperAccessor: Boolean
- Definition Classes
- HasFlags
-
def
isSynthetic: Boolean
- Definition Classes
- HasFlags
-
def
isTerm: Boolean
Does this symbol represent the definition of a term? Note that every symbol is either a term or a type.
Does this symbol represent the definition of a term? Note that every symbol is either a term or a type. So for every symbol
sym
(except forNoSymbol
), eithersym.isTerm
is true orsym.isType
is true.- Definition Classes
- SymbolApi
-
def
isTermMacro: Boolean
- Definition Classes
- Symbol
-
final
def
isThisSym: Boolean
- Definition Classes
- Symbol
-
def
isThreadsafe(purpose: SymbolTable.SymbolOps): Boolean
We consider a symbol to be thread-safe, when multiple concurrent threads can call its methods (either directly or indirectly via public reflection or internal compiler infrastructure), without any locking and everything works as it should work.
We consider a symbol to be thread-safe, when multiple concurrent threads can call its methods (either directly or indirectly via public reflection or internal compiler infrastructure), without any locking and everything works as it should work.
In its basic form,
isThreadsafe
always returns false. Runtime reflection augments reflection infrastructure with threadsafety-tracking mechanism implemented inSynchronizedSymbol
that communicates with underlying completers and can sometimes return true if the symbol has been completed to the point of thread safety.The
purpose
parameter signifies whether we want to just check immutability of certain flags for the given mask. This is necessary to enable robust auto-initialization ofSymbol.flags
for runtime reflection, and is also quite handy in avoiding unnecessary initializations when requesting for flags that have already been set.- Definition Classes
- Symbol
-
final
def
isTopLevel: Boolean
Is this symbol owned by a package?
Is this symbol owned by a package?
- Definition Classes
- Symbol
-
def
isTrait: Boolean
Does this symbol represent a trait?
Does this symbol represent a trait?
- Definition Classes
- ClassSymbol → ClassSymbolApi → Symbol → HasFlags
-
def
isTraitOrInterface: Boolean
- Definition Classes
- HasFlags
-
final
def
isType: Boolean
Does this symbol represent the definition of a type? Note that every symbol is either a term or a type.
Does this symbol represent the definition of a type? Note that every symbol is either a term or a type. So for every symbol
sym
(except forNoSymbol
), eithersym.isTerm
is true orsym.isType
is true.- Definition Classes
- TypeSymbolApi → SymbolApi
-
def
isTypeParameter: Boolean
- Definition Classes
- TypeSymbol → Symbol
-
def
isTypeParameterOrSkolem: Boolean
- Definition Classes
- TypeSymbol → Symbol
-
def
isTypeSkolem: Boolean
- Definition Classes
- Symbol
-
def
isVal: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isValue: Boolean
- Definition Classes
- Symbol
-
def
isValueParameter: Boolean
- Definition Classes
- Symbol
-
def
isVar: Boolean
- Definition Classes
- SymbolContextApiImpl
-
def
isVarargsMethod: Boolean
- Definition Classes
- Symbol
-
def
isVariable: Boolean
- Definition Classes
- Symbol
-
final
def
isWeakSubClass(that: SymbolTable.Symbol): Boolean
- Definition Classes
- Symbol
-
def
javaBinaryName: SymbolTable.Name
- Definition Classes
- Symbol
-
def
javaBinaryNameString: String
- Definition Classes
- Symbol
-
def
javaClassName: String
- Definition Classes
- Symbol
-
def
javaSimpleName: SymbolTable.Name
These should be moved somewhere like JavaPlatform.
These should be moved somewhere like JavaPlatform.
- Definition Classes
- Symbol
-
final
def
keyString: String
String representation of symbol's definition key word
String representation of symbol's definition key word
- Definition Classes
- Symbol
-
final
def
kindString: String
- Definition Classes
- Symbol
-
def
knownDirectSubclasses: Set[SymbolTable.Symbol]
- Definition Classes
- SymbolContextApiImpl
-
def
linkedClassOfClass: SymbolTable.Symbol
For a module class: its linked class For a plain class: the module class of its linked module.
For a module class: its linked class For a plain class: the module class of its linked module.
class Foo <-- linkedClassOfClass --> class Foo$
- Definition Classes
- ModuleClassSymbol → ClassSymbol → Symbol
-
def
localName: SymbolTable.TermName
- Definition Classes
- Symbol
-
def
locationString: String
String representation of location, plus a preposition.
String representation of location, plus a preposition. Doesn't do much, for backward compatibility reasons.
- Definition Classes
- Symbol
-
final
def
logicallyEnclosingMember: SymbolTable.Symbol
The method or class which logically encloses the current symbol.
The method or class which logically encloses the current symbol. If the symbol is defined in the initialization part of a template this is the template's primary constructor, otherwise it is the physically enclosing method or class.
Example 1:
def f() { val x = { def g() = ...; g() } }
In this case the owner chain of
g
isx
, followed byf
andg.logicallyEnclosingMember == f
.Example 2:
class C { def <init> = { ... } val x = { def g() = ...; g() } } }
In this case the owner chain of
g
isx
, followed byC
but g.logicallyEnclosingMember is the primary constructor symbol<init>
(or, for traits:$init
) ofC
.- Definition Classes
- Symbol
-
final
def
makeNotPrivate(base: SymbolTable.Symbol): Unit
Remove private modifier from symbol
sym
s definition.Remove private modifier from symbol
sym
s definition. Ifsym
is a is not a constructor nor a static module rename it by expanding its name to avoid name clashes- base
the fully qualified name of this class will be appended if name expansion is needed
- Definition Classes
- Symbol
-
def
makePublic: SymbolTable.Symbol
Remove any access boundary and clear flags PROTECTED | PRIVATE.
Remove any access boundary and clear flags PROTECTED | PRIVATE.
- Definition Classes
- Symbol
-
def
makeSerializable(): Unit
Adds the interface scala.Serializable to the parents of a ClassInfoType.
Adds the interface scala.Serializable to the parents of a ClassInfoType. Note that the tree also has to be updated accordingly.
- Definition Classes
- Symbol
-
final
def
map(f: (SymbolTable.Symbol) ⇒ SymbolTable.Symbol): SymbolTable.Symbol
If this is a NoSymbol, returns NoSymbol, otherwise returns the result of applying
f
to this symbol. -
def
markAllCompleted(): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
markFlagsCompleted(mask: Long): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
final
def
matchingSymbol(site: SymbolTable.Type, admit: Long = 0L): SymbolTable.Symbol
The non-private member of
site
whose type and name match the type of this symbol.The non-private member of
site
whose type and name match the type of this symbol.- Definition Classes
- Symbol
-
final
def
matchingSymbol(ofclazz: SymbolTable.Symbol, site: SymbolTable.Type): SymbolTable.Symbol
The non-private symbol whose type matches the type of this symbol in in given class.
The non-private symbol whose type matches the type of this symbol in in given class.
- ofclazz
The class containing the symbol's definition
- site
The base type from which member types are computed
- Definition Classes
- Symbol
-
def
maybeInitialize: Boolean
- Definition Classes
- Symbol
-
def
migrationMessage: Option[String]
- Definition Classes
- Symbol
-
def
migrationVersion: Option[String]
- Definition Classes
- Symbol
-
def
mixinClasses: List[SymbolTable.Symbol]
The directly or indirectly inherited mixins of this class except for mixin classes inherited by the superclass.
The directly or indirectly inherited mixins of this class except for mixin classes inherited by the superclass. Mixin classes appear in linearization order.
- Definition Classes
- Symbol
-
def
modifyInfo(f: (SymbolTable.Type) ⇒ SymbolTable.Type): PackageClassSymbol.this.type
Modifies this symbol's info in place.
Modifies this symbol's info in place.
- Definition Classes
- Symbol
-
def
module: SymbolTable.Symbol
- Definition Classes
- SymbolContextApiImpl
-
def
moduleClass: SymbolTable.Symbol
The module class corresponding to this module.
The module class corresponding to this module.
- Definition Classes
- Symbol
-
def
moduleSuffix: String
- Definition Classes
- Symbol
-
final
def
name: NameType
The name of the symbol as a member of the
Name
type. -
def
nameString: String
String representation of symbol's simple name.
String representation of symbol's simple name. If !settings.debug translates expansions of operators back to operator symbol. E.g. $eq => =. If settings.uniqid, adds id. If settings.Yshowsymowners, adds owner's id If settings.Yshowsymkinds, adds abbreviated symbol kind.
- Definition Classes
- Symbol
-
def
name_=(name: SymbolTable.Name): Unit
- Definition Classes
- TypeSymbol → Symbol
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
needsExpandedSetterName: Boolean
- Definition Classes
- Symbol
-
final
def
needsFlatClasses: Boolean
- Definition Classes
- Symbol
-
def
needsModuleSuffix: Boolean
Whether this symbol needs nme.MODULE_SUFFIX_STRING (aka $) appended on the java platform.
Whether this symbol needs nme.MODULE_SUFFIX_STRING (aka $) appended on the java platform.
- Definition Classes
- Symbol
-
final
def
newAbstractType(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.AbstractTypeSymbol
Symbol of an abstract type type T >: ...
Symbol of an abstract type type T >: ... <: ...
- Definition Classes
- Symbol
-
final
def
newAliasType(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.AliasTypeSymbol
Symbol of a type definition type T = ...
Symbol of a type definition type T = ...
- Definition Classes
- Symbol
-
final
def
newAnonymousFunctionClass(pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ClassSymbol
- Definition Classes
- Symbol
-
final
def
newAnonymousFunctionValue(pos: SymbolTable.Position, newFlags: Long = 0L): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newClass(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ClassSymbol
- Definition Classes
- Symbol
-
def
newClassConstructor(pos: SymbolTable.Position): SymbolTable.MethodSymbol
Instance constructor with info set.
Instance constructor with info set.
- Definition Classes
- Symbol
-
final
def
newClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ClassSymbol
- Definition Classes
- Symbol
-
def
newClassWithInfo(name: SymbolTable.TypeName, parents: List[SymbolTable.Type], scope: SymbolTable.Scope, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ClassSymbol
A new class with its info set to a ClassInfoType with given scope and parents.
A new class with its info set to a ClassInfoType with given scope and parents.
- Definition Classes
- Symbol
-
final
def
newConstructor(pos: SymbolTable.Position, newFlags: Long = 0L): SymbolTable.MethodSymbol
Propagates ConstrFlags (JAVA, specifically) from owner to constructor.
Propagates ConstrFlags (JAVA, specifically) from owner to constructor.
- Definition Classes
- Symbol
-
final
def
newErrorClass(name: SymbolTable.TypeName): SymbolTable.ClassSymbol
- Definition Classes
- Symbol
-
final
def
newErrorSymbol(name: SymbolTable.Name): SymbolTable.Symbol
- Definition Classes
- Symbol
-
final
def
newErrorValue(name: SymbolTable.TermName): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newExistential(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TypeSymbol
Symbol of an existential type T forSome { ...
Symbol of an existential type T forSome { ... }
- Definition Classes
- Symbol
-
def
newExistentialSkolem(name: SymbolTable.TypeName, info: SymbolTable.Type, flags: Long, pos: SymbolTable.Position, origin: AnyRef): SymbolTable.TypeSkolem
Create a new existential type skolem with this symbol its owner, and the given other properties.
Create a new existential type skolem with this symbol its owner, and the given other properties.
- Definition Classes
- Symbol
-
def
newExistentialSkolem(basis: SymbolTable.Symbol, origin: AnyRef): SymbolTable.TypeSkolem
Create a new existential type skolem with this symbol its owner, based on the given symbol and origin.
Create a new existential type skolem with this symbol its owner, based on the given symbol and origin.
- Definition Classes
- Symbol
-
def
newGADTSkolem(name: SymbolTable.TypeName, origin: SymbolTable.Symbol, info: SymbolTable.Type): SymbolTable.TypeSkolem
- Definition Classes
- Symbol
-
final
def
newImport(pos: SymbolTable.Position): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newLabel(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition): SymbolTable.MethodSymbol
- Definition Classes
- Symbol
-
def
newLinkedModule(moduleClass: SymbolTable.Symbol, newFlags: Long = 0L): SymbolTable.ModuleSymbol
- Definition Classes
- Symbol
-
final
def
newLocalDummy(pos: SymbolTable.Position): SymbolTable.TermSymbol
Create local dummy for template (owner of local blocks)
Create local dummy for template (owner of local blocks)
- Definition Classes
- Symbol
-
final
def
newMethod(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.MethodSymbol
- Definition Classes
- Symbol
-
final
def
newMethodSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.MethodSymbol
- Definition Classes
- Symbol
-
final
def
newModule(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags0: Long = 0L): SymbolTable.ModuleSymbol
- Definition Classes
- Symbol
-
final
def
newModuleAndClassSymbol(name: SymbolTable.Name, pos: SymbolTable.Position, flags0: SymbolTable.FlagSet): (SymbolTable.ModuleSymbol, SymbolTable.ClassSymbol)
- Definition Classes
- Symbol
-
final
def
newModuleClass(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ModuleClassSymbol
- Definition Classes
- Symbol
-
final
def
newModuleClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ModuleClassSymbol
- Definition Classes
- Symbol
-
final
def
newModuleSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ModuleSymbol
- Definition Classes
- Symbol
-
def
newNestedSymbol(name: SymbolTable.Name, pos: SymbolTable.Position, newFlags: Long, isClass: Boolean): SymbolTable.Symbol
- Definition Classes
- SymbolContextApiImpl
-
final
def
newNonClassSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TypeSymbol
- Definition Classes
- Symbol
-
final
def
newOverloaded(pre: SymbolTable.Type, alternatives: List[SymbolTable.Symbol]): SymbolTable.TermSymbol
- pre
type relative to which alternatives are seen. for instance: class C[T] { def m(x: T): T def m'(): T } val v: C[Int] Then v.m has symbol TermSymbol(flags = {OVERLOADED}, tpe = OverloadedType(C[Int], List(m, m'))) You recover the type of m doing a m.tpe.asSeenFrom(pre, C) (generally, owner of m, which is C here). or: pre.memberType(m)
- Definition Classes
- Symbol
-
final
def
newPackage(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.ModuleSymbol
- Definition Classes
- Symbol
-
final
def
newRefinementClass(pos: SymbolTable.Position): SymbolTable.RefinementClassSymbol
Refinement types P { val x: String; type T <: Number } also have symbols, they are refinementClasses
Refinement types P { val x: String; type T <: Number } also have symbols, they are refinementClasses
- Definition Classes
- Symbol
-
def
newStaticConstructor(pos: SymbolTable.Position): SymbolTable.MethodSymbol
Static constructor with info set.
Static constructor with info set.
- Definition Classes
- Symbol
-
def
newStubSymbol(name: SymbolTable.Name, missingMessage: String): SymbolTable.Symbol
Creates a placeholder symbol for when a name is encountered during unpickling for which there is no corresponding classfile.
Creates a placeholder symbol for when a name is encountered during unpickling for which there is no corresponding classfile. This defers failure to the point when that name is used for something, which is often to the point of never.
- Definition Classes
- Symbol
-
def
newSyntheticTypeParam(name: String, newFlags: Long): SymbolTable.TypeSymbol
- Definition Classes
- Symbol
-
def
newSyntheticTypeParams(num: Int): List[SymbolTable.TypeSymbol]
- Definition Classes
- Symbol
-
final
def
newSyntheticValueParam(argtype: SymbolTable.Type, name: SymbolTable.TermName = nme.syntheticParamName(1)): SymbolTable.TermSymbol
Synthetic value parameter when parameter symbol is not available.
Synthetic value parameter when parameter symbol is not available. Calling this method multiple times will re-use the same parameter name.
- Definition Classes
- Symbol
-
final
def
newSyntheticValueParams(argtypes: List[SymbolTable.Type], freshName: () ⇒ SymbolTable.TermName): List[SymbolTable.TermSymbol]
- Definition Classes
- Symbol
-
final
def
newSyntheticValueParams(argtypes: List[SymbolTable.Type]): List[SymbolTable.TermSymbol]
Synthetic value parameters when parameter symbols are not available.
Synthetic value parameters when parameter symbols are not available. Calling this method multiple times will re-use the same parameter names.
- Definition Classes
- Symbol
-
final
def
newTermSymbol(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newThisSym(name: SymbolTable.TermName = nme.this_, pos: SymbolTable.Position = NoPosition): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newTypeParameter(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TypeSymbol
Symbol of a type parameter
Symbol of a type parameter
- Definition Classes
- Symbol
-
final
def
newTypeSkolem: SymbolTable.TypeSkolem
Type skolems are type parameters seen from the inside Assuming a polymorphic method m[T], its type is a PolyType which has a TypeParameter with name
T
in its typeParams list.Type skolems are type parameters seen from the inside Assuming a polymorphic method m[T], its type is a PolyType which has a TypeParameter with name
T
in its typeParams list. While type checking the parameters, result type and body of the method, there's a local copy ofT
which is a TypeSkolem.- Definition Classes
- Symbol
-
final
def
newTypeSkolemSymbol(name: SymbolTable.TypeName, origin: AnyRef, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TypeSkolem
- Definition Classes
- Symbol
-
def
newTypeSymbol(name: SymbolTable.TypeName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TypeSymbol
- Definition Classes
- Symbol
-
final
def
newValue(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newValueParameter(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
final
def
newVariable(name: SymbolTable.TermName, pos: SymbolTable.Position = NoPosition, newFlags: Long = 0L): SymbolTable.TermSymbol
- Definition Classes
- Symbol
-
def
nextOverriddenSymbol: SymbolTable.Symbol
Equivalent to allOverriddenSymbols.head (or NoSymbol if no overrides) but more efficient.
Equivalent to allOverriddenSymbols.head (or NoSymbol if no overrides) but more efficient.
- Definition Classes
- Symbol
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
-
final
def
orElse(alt: ⇒ SymbolTable.Symbol): SymbolTable.Symbol
Provides an alternate if symbol is a NoSymbol.
-
def
originalEnclosingTopLevelClassOrDummy: SymbolTable.Symbol
The top-level class or local dummy symbol containing this symbol, using the original owner chain.
The top-level class or local dummy symbol containing this symbol, using the original owner chain.
- Definition Classes
- Symbol
-
def
originalInfo: SymbolTable.Type
- Definition Classes
- Symbol
-
def
originalOwner: SymbolTable.Symbol
The initial owner of this symbol.
The initial owner of this symbol.
- Definition Classes
- Symbol
-
final
def
outerClass: SymbolTable.Symbol
The class that is logically an outer class of given
clazz
.The class that is logically an outer class of given
clazz
. This is the enclosing class, except for classes defined locally to constructors, where it is the outer class of the enclosing class.- Definition Classes
- Symbol
-
def
outerSource: SymbolTable.Symbol
For an outer accessor: The class from which the outer originates.
For an outer accessor: The class from which the outer originates. For all other symbols: NoSymbol
- Definition Classes
- Symbol
-
final
def
overriddenSymbol(baseClass: SymbolTable.Symbol): SymbolTable.Symbol
The symbol, in class
baseClass
, that is overridden by this symbol.The symbol, in class
baseClass
, that is overridden by this symbol.- baseClass
is a base class of this symbol's owner.
- Definition Classes
- Symbol
-
def
overrideChain: collection.immutable.List[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
overrides: List[SymbolTable.Symbol]
Returns all symbols overridden by this symbol.
Returns all symbols overridden by this symbol.
- Definition Classes
- SymbolContextApiImpl → SymbolApi
-
final
def
overridingSymbol(ofclazz: SymbolTable.Symbol): SymbolTable.Symbol
The symbol overriding this symbol in given subclass
ofclazz
.The symbol overriding this symbol in given subclass
ofclazz
.- ofclazz
is a subclass of this symbol's owner
- Definition Classes
- Symbol
-
def
owner: SymbolTable.Symbol
The owner of a symbol.
The owner of a symbol. Changes over time to adapt to the structure of the trees:
- Up to lambdalift, the owner is the lexically enclosing definition. For definitions in a local block, the owner is also the next enclosing definition.
- After lambdalift, all local method and class definitions (those not owned by a class or package class) change their owner to the enclosing class. This is done through a destructive "sym.owner = sym.owner.enclClass". The old owner is saved by saveOriginalOwner.
- After flatten, all classes are owned by a PackageClass. This is done through a
phase check (if after flatten) in the (overridden) method "def owner" in
ModuleSymbol / ClassSymbol. The
rawowner
field is not modified. - Owners are also changed in other situations, for example when moving trees into a new lexical context, e.g. in the named/default arguments transformation, or when translating extension method definitions.
In general when seeking the owner of a symbol, one should call
owner
. The other possibilities include:- call
safeOwner
if it is expected that the target may be NoSymbol - call
assertOwner
if it is an unrecoverable error if the target is NoSymbol
owner
behaves likesafeOwner
, but logs NoSymbol.owner calls under -Xdev.assertOwner
aborts compilation immediately if called on NoSymbol.- Definition Classes
- ClassSymbol → Symbol → SymbolApi
-
def
ownerChain: List[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
owner_=(owner: SymbolTable.Symbol): Unit
- Definition Classes
- Symbol
-
def
ownersIterator: Iterator[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
ownsString: String
String representation of location.
String representation of location.
- Definition Classes
- Symbol
-
def
packageObject: SymbolTable.Symbol
The package object symbol corresponding to this package or package class symbol, or NoSymbol otherwise
The package object symbol corresponding to this package or package class symbol, or NoSymbol otherwise
- Definition Classes
- Symbol
-
def
paramLists: List[List[SymbolTable.Symbol]]
- Definition Classes
- SymbolContextApiImpl
-
def
paramPos: Int
The sequence number of this parameter symbol among all type and value parameters of symbol's owner.
The sequence number of this parameter symbol among all type and value parameters of symbol's owner. -1 if symbol does not appear among the parameters of its owner.
- Definition Classes
- Symbol
-
def
paramss: List[List[SymbolTable.Symbol]]
The value parameter sections of this symbol.
The value parameter sections of this symbol.
- Definition Classes
- Symbol
-
def
parentSymbols: List[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
parentSymbolsIterator: Iterator[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
pos: SymbolTable.Position
- Definition Classes
- Attachable
-
def
pos_=(pos: SymbolTable.Position): Unit
- Definition Classes
- Attachable
-
def
primaryConstructor: SymbolTable.Symbol
For a Scala class or module class, the primary constructor of the class.
For a Scala class or module class, the primary constructor of the class. For a Scala trait, its mixin constructor. For a Scala package class, NoSymbol. For a Java class, NoSymbol.
Known issues: Due to scala/bug#8367, primaryConstructor may return unexpected results when called for Java classes (for some vague definition of a "Java class", which apparently not only includes javac-produced classfiles, but also consists of classes defined in Scala programs under the java.lang package). What's even worse, for some Java classes we can't even guarantee stability of the return value - depending on your classloader configuration and/or JDK version you might get different primaryConstructor for the same ClassSymbol. We have logged these issues at scala/bug#8193.
- Definition Classes
- ClassSymbol → ClassSymbolApi → Symbol
-
def
primaryConstructorName: StdNames.nme.NameType
- Definition Classes
- ClassSymbol
-
def
privateWithin: SymbolTable.Symbol
Access level encoding: there are three scala flags (PRIVATE, PROTECTED, and LOCAL) which combine with value privateWithin (the "foo" in private[foo]) to define from where an entity can be accessed.
Access level encoding: there are three scala flags (PRIVATE, PROTECTED, and LOCAL) which combine with value privateWithin (the "foo" in private[foo]) to define from where an entity can be accessed. The meanings are as follows:
PRIVATE access restricted to class only. PROTECTED access restricted to class and subclasses only. LOCAL can only be set in conjunction with PRIVATE or PROTECTED. Further restricts access to the same object instance.
In addition, privateWithin can be used to set a visibility barrier. When set, everything contained in the named enclosing package or class has access. It is incompatible with PRIVATE or LOCAL, but is additive with PROTECTED (i.e. if either the flags or privateWithin allow access, then it is allowed.)
The java access levels translate as follows:
java private: hasFlag(PRIVATE) && !hasAccessBoundary java package: !hasFlag(PRIVATE | PROTECTED) && (privateWithin == enclosing package) java protected: hasFlag(PROTECTED) && (privateWithin == enclosing package) java public: !hasFlag(PRIVATE | PROTECTED) && !hasAccessBoundary
-
def
privateWithin_=(sym: SymbolTable.Symbol): Unit
- Definition Classes
- Symbol
-
def
rawFlagString: String
- Definition Classes
- Symbol
-
def
rawFlagString(mask: Long): String
- Definition Classes
- Symbol
-
def
rawInfo: SymbolTable.Type
Return info without checking for initialization or completing
Return info without checking for initialization or completing
- Definition Classes
- Symbol
-
final
def
rawInfoIsNoType: Boolean
- Definition Classes
- Symbol
-
val
rawatt: Attachments { type Pos = Symbols.this.Position }
- Attributes
- protected
- Definition Classes
- Attachable
-
final
def
rawflags: Long
- Definition Classes
- Symbol
-
def
rawflags_=(x: Long): Unit
- Definition Classes
- Symbol
-
final
def
rawname: NameType
- Definition Classes
- Symbol
-
final
def
rawowner: SymbolTable.Symbol
- Definition Classes
- Symbol
-
def
removeAnnotation(cls: SymbolTable.Symbol): SymbolTable.Symbol
- Definition Classes
- Annotatable
-
def
removeAttachment[T](implicit arg0: ClassTag[T]): PackageClassSymbol.this.type
- Definition Classes
- Attachable
-
def
reset(completer: SymbolTable.Type): PackageClassSymbol.this.type
Reset symbol to initial state
Reset symbol to initial state
- Definition Classes
- ClassSymbol → TypeSymbol → Symbol
-
def
resetFlag(mask: Long): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
resetFlags(): Unit
- Definition Classes
- Symbol
-
def
resolveOverloadedFlag(flag: Long): String
Default implementation calls the generic string function, which will print overloaded flags as <flag1/flag2/flag3>.
Default implementation calls the generic string function, which will print overloaded flags as <flag1/flag2/flag3>. Subclasses of Symbol refine.
- Definition Classes
- ClassSymbol → TypeSymbol → Symbol → HasFlags
-
final
def
safeOwner: SymbolTable.Symbol
- Definition Classes
- Symbol
-
final
def
sealedChildren: Set[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
final
def
sealedDescendants: Set[SymbolTable.Symbol]
Recursively assemble all children of this symbol.
Recursively assemble all children of this symbol.
- Definition Classes
- Symbol
-
final
def
sealedSortName: String
The String used to order otherwise identical sealed symbols.
The String used to order otherwise identical sealed symbols. This uses data which is stable across runs and variable classpaths (the initial Name) before falling back on id, which varies depending on exactly when a symbol is loaded.
- Definition Classes
- Symbol
-
def
selfType: SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
def
setAnnotations(annots: List[SymbolTable.AnnotationInfo]): PackageClassSymbol.this.type
- Definition Classes
- Symbol → Annotatable
-
def
setAnnotations(annots: SymbolTable.AnnotationInfo*): PackageClassSymbol.this.type
- Definition Classes
- SymbolContextApiImpl
-
def
setAttachments(attachments: Attachments { type Pos = Symbols.this.Position }): PackageClassSymbol.this.type
- Definition Classes
- Attachable
-
def
setFlag(mask: Long): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
setInfo(info: SymbolTable.Type): PackageClassSymbol.this.type
Set initial info.
Set initial info.
- Definition Classes
- Symbol
-
def
setInfoAndEnter(info: SymbolTable.Type): PackageClassSymbol.this.type
Set the info and enter this symbol into the owner's scope.
Set the info and enter this symbol into the owner's scope.
- Definition Classes
- Symbol
-
def
setInfoOwnerAdjusted(info: SymbolTable.Type): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
setName(name: SymbolTable.Name): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
setPos(newpos: SymbolTable.Position): PackageClassSymbol.this.type
- Definition Classes
- Attachable
-
def
setPrivateWithin(sym: SymbolTable.Symbol): PackageClassSymbol.this.type
- Definition Classes
- Symbol
-
def
setter: SymbolTable.Symbol
- Definition Classes
- SymbolContextApiImpl
-
final
def
setterIn(base: SymbolTable.Symbol, hasExpandedName: Boolean = needsExpandedSetterName): SymbolTable.Symbol
The setter of this value or getter definition, or NoSymbol if none exists.
The setter of this value or getter definition, or NoSymbol if none exists.
- Definition Classes
- Symbol
-
def
setterName: SymbolTable.TermName
- Definition Classes
- Symbol
-
def
setterNameInBase(base: SymbolTable.Symbol, expanded: Boolean): SymbolTable.TermName
- Definition Classes
- Symbol
-
def
shortSymbolClass: String
- Definition Classes
- Symbol
-
def
signatureString: String
- Definition Classes
- Symbol
-
final
def
simpleName: SymbolTable.Name
The simple name of this Symbol
The simple name of this Symbol
- Definition Classes
- Symbol
-
final
def
skipConstructor: SymbolTable.Symbol
If this is a constructor, its owner: otherwise this.
If this is a constructor, its owner: otherwise this.
- Definition Classes
- Symbol
-
def
skipPackageObject: SymbolTable.Symbol
If this is a package object or its implementing class, its owner: otherwise this.
If this is a package object or its implementing class, its owner: otherwise this.
- Definition Classes
- Symbol
-
final
def
sourceFile: AbstractFile
- Definition Classes
- Symbol
-
def
sourceModule: SymbolTable.Symbol
The module corresponding to this module class (note that this is not updated when a module is cloned), or NoSymbol if this is not a ModuleClass.
The module corresponding to this module class (note that this is not updated when a module is cloned), or NoSymbol if this is not a ModuleClass.
- Definition Classes
- PackageClassSymbol → ModuleClassSymbol → ClassSymbol → Symbol
-
def
sourceModule_=(module: SymbolTable.Symbol): Unit
- Definition Classes
- ModuleClassSymbol → Symbol
-
def
staticAnnotations: collection.immutable.List[SymbolTable.AnnotationInfo]
- Definition Classes
- Annotatable
-
def
substInfo(syms0: List[SymbolTable.Symbol], syms1: List[SymbolTable.Symbol]): PackageClassSymbol.this.type
Substitute second list of symbols for first in current info.
Substitute second list of symbols for first in current info.
NOTE: this discards the type history (uses setInfo)
- Definition Classes
- Symbol
-
def
suchThat(cond: (SymbolTable.Symbol) ⇒ Boolean): SymbolTable.Symbol
Does the same as
filter
, but crashes if there are multiple matches. -
def
sugaredSymbolOrSelf: SymbolTable.Symbol
Given a field, construct a term symbol that represents the source construct that gave rise the field
Given a field, construct a term symbol that represents the source construct that gave rise the field
- Definition Classes
- Symbol
-
def
superClass: SymbolTable.Symbol
The superclass of this class.
The superclass of this class.
- Definition Classes
- Symbol
-
def
superPrefix(supertpe: SymbolTable.Type): SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
final
def
superSymbolIn(base: SymbolTable.Symbol): SymbolTable.Symbol
The symbol accessed by a super in the definition of this symbol when seen from class
base
.The symbol accessed by a super in the definition of this symbol when seen from class
base
. This symbol is always concrete. pre:this.owner
is in the base class sequence ofbase
.- Definition Classes
- Symbol
-
def
symbolCreationString: String
- Definition Classes
- Symbol
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
thisPrefix: SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
def
thisSym: SymbolTable.Symbol
A symbol carrying the self type of the class as its type
A symbol carrying the self type of the class as its type
- Definition Classes
- ClassSymbol → Symbol
-
def
thisType: SymbolTable.Type
the type this.type in this class
the type this.type in this class
- Definition Classes
- ClassSymbol → Symbol
-
final
def
toOption: Option[SymbolTable.Symbol]
- Definition Classes
- Symbol
-
def
toString(): String
String representation, including symbol's kind e.g., "class Foo", "method Bar".
String representation, including symbol's kind e.g., "class Foo", "method Bar". If hasMeaninglessName is true, uses the owner's name to disambiguate identity.
- Definition Classes
- ClassSymbol → Symbol → AnyRef → Any
-
def
toType: SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
def
toTypeConstructor: SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
def
toTypeIn(site: SymbolTable.Type): SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl
-
final
def
tpe: SymbolTable.Type
The "type" of this symbol.
The "type" of this symbol. The type of a term symbol is its usual type. A TypeSymbol is more complicated; see that class for elaboration. Since tpe forwards to tpe_*, if you call it on a type symbol with unapplied type parameters, the type returned will contain dummies types. These will hide legitimate errors or create spurious ones if used as normal types.
For type symbols,
tpe
is different thaninfo
.tpe
returns a typeRef to the type symbol,info
returns the type information of the type symbol, e.g. a ClassInfoType for classes or a TypeBounds for abstract types.- Definition Classes
- Symbol
-
def
tpeHK: SymbolTable.Type
typeConstructor throws an exception when called on term symbols; this is a more forgiving alternative.
typeConstructor throws an exception when called on term symbols; this is a more forgiving alternative. Calls typeConstructor on TypeSymbols, returns info otherwise.
- Definition Classes
- TypeSymbol → Symbol
-
def
tpe_*: SymbolTable.Type
A polymorphic type symbol has two distinct "types":
A polymorphic type symbol has two distinct "types":
tpe_* a TypeRef with: dummy type args, no unapplied type parameters, and kind * tpeHK a TypeRef with: no type args, unapplied type parameters, and kind (*,*,...,*) => * depending on the number of tparams.
The dummy type args in tpe_* are created by wrapping a TypeRef around the type parameter symbols. Types containing dummies will hide errors or introduce spurious ones if they are passed around as if normal types. They should only be used in local operations where they will either be discarded immediately after, or will undergo substitution in which the dummies are replaced by actual type arguments.
- Definition Classes
- TypeSymbol → Symbol
-
def
typeConstructor: SymbolTable.Type
Only applicable to TypeSymbols, it is the type corresponding to the symbol itself.
Only applicable to TypeSymbols, it is the type corresponding to the symbol itself. For instance, the type of a List might be List[Int] - the same symbol's typeConstructor is simply List. One might be tempted to write that as List[_], and in some contexts this is possible, but it is discouraged because it is syntactically indistinguishable from and easily confused with the type List[T] forSome { type T; }, which can also be written List[_].
- Definition Classes
- TypeSymbol → Symbol
-
def
typeOfThis: SymbolTable.Type
the self type of an object foo is foo.type, not class<foo>.this.type
the self type of an object foo is foo.type, not class<foo>.this.type
- Definition Classes
- ModuleClassSymbol → Symbol
-
def
typeOfThis_=(tp: SymbolTable.Type): Unit
Sets the self type of the class
Sets the self type of the class
- Definition Classes
- ClassSymbol → Symbol
-
def
typeParams: List[SymbolTable.Symbol]
The type parameters of this symbol.
The type parameters of this symbol. assumption: if a type starts out as monomorphic, it will not acquire type parameters later.
- Definition Classes
- Symbol
-
def
typeSignature: SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl → SymbolApi
- See also
-
def
typeSignatureIn(site: SymbolTable.Type): SymbolTable.Type
- Definition Classes
- SymbolContextApiImpl → SymbolApi
- See also
-
def
unexpandedName: SymbolTable.Name
If this symbol has an expanded name, its original (unexpanded) name, otherwise the name itself.
If this symbol has an expanded name, its original (unexpanded) name, otherwise the name itself.
- Definition Classes
- Symbol
-
def
unpackLocation: AnyRef
If this symbol is an existential skolem the location (a Tree or null) where it was unpacked.
If this symbol is an existential skolem the location (a Tree or null) where it was unpacked. Resulttype is AnyRef because trees are not visible here.
- Definition Classes
- Symbol
-
def
unsafeTypeParams: List[SymbolTable.Symbol]
The type parameters of this symbol, without ensuring type completion.
The type parameters of this symbol, without ensuring type completion. assumption: if a type starts out as monomorphic, it will not acquire type parameters later.
- Definition Classes
- Symbol
-
def
updateAttachment[T](attachment: T)(implicit arg0: ClassTag[T]): PackageClassSymbol.this.type
- Definition Classes
- Attachable
-
def
updateInfo(info: SymbolTable.Type): SymbolTable.Symbol
Set new info valid from start of this phase.
Set new info valid from start of this phase.
- Definition Classes
- Symbol
-
def
validTo: Period
- Definition Classes
- Symbol
-
def
validTo_=(x: Period): Unit
- Definition Classes
- Symbol
-
def
variance: Variance
The variance of this symbol.
The variance of this symbol.
- Definition Classes
- Symbol
-
def
varianceString: String
String representation of symbol's variance
String representation of symbol's variance
- Definition Classes
- Symbol
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
withAnnotation(annot: SymbolTable.AnnotationInfo): SymbolTable.Symbol
- Definition Classes
- Annotatable
-
def
withAnnotations(annots: List[SymbolTable.AnnotationInfo]): PackageClassSymbol.this.type
- Definition Classes
- Symbol → Annotatable
-
def
withoutAnnotations: PackageClassSymbol.this.type
- Definition Classes
- Symbol → Annotatable
Deprecated Value Members
-
final
def
freshExistential(suffix: String): SymbolTable.TypeSymbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.1) Use overload that accepts an id
-
final
def
getter(base: SymbolTable.Symbol): SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use
getterIn
instead
-
def
hasLocalFlag: Boolean
- Definition Classes
- HasFlags
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use isLocalToThis instead
-
def
isImplClass: Boolean
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) trait implementation classes have been removed in Scala 2.12
-
final
def
isLocal: Boolean
Is this symbol defined in a block?
Is this symbol defined in a block?
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use isLocalToBlock instead
-
def
isPackage: Boolean
- Definition Classes
- HasFlags
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use
hasPackageFlag
instead
-
def
lazyAccessor: SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) No longer applicable, as lazy vals are not desugared until the fields phase
-
def
lazyAccessorOrSelf: SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.12.0) No longer applicable, as lazy vals are not desugared until the fields phase
-
def
originalName: SymbolTable.Name
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use unexpandedName
-
final
def
setter(base: SymbolTable.Symbol, hasExpandedName: Boolean = needsExpandedSetterName): SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use
setterIn
instead
-
final
def
superSymbol(base: SymbolTable.Symbol): SymbolTable.Symbol
- Definition Classes
- Symbol
- Annotations
- @deprecated
- Deprecated
(Since version 2.11.0) use
superSymbolIn
instead
Inherited from SymbolTable.ModuleClassSymbol
Inherited from SymbolTable.ClassSymbol
Inherited from SymbolTable.ClassSymbolApi
Inherited from SymbolTable.TypeSymbol
Inherited from SymbolTable.TypeSymbolApi
Inherited from SymbolTable.Symbol
Inherited from SymbolTable.Attachable
Inherited from SymbolTable.Annotatable[SymbolTable.Symbol]
Inherited from HasFlags
Inherited from SymbolTable.SymbolContextApiImpl
Inherited from SymbolTable.SymbolApi
Inherited from AnyRef
Inherited from Any
Class Symbol Members
Method Symbol Members
TypeSymbol Members
Symbol Basic Information
Symbol Type Tests
Symbol Conversions
Iteration Helpers
These methods enable collections-like operations on symbols.