Dotty Documentation

0.14.0-bin-SNAPSHOT

class SymDenotation

A sym-denotation represents the contents of a definition during a period.

[-] Constructors

SymDenotation ( symbol: Symbol , maybeOwner: Symbol , name: Name , initFlags: FlagSet , initInfo: Type , initPrivateWithin: Symbol )
SymDenotation ( self: Symbol )

[-] Members

[+] private val initFlags : FlagSet
[+] private val initInfo : Type
[+] private val initPrivateWithin : Symbol
[+] final val maybeOwner : Symbol
[+] private var myAnnotations : List [ Annotation ]
[+] private var myFlags : FlagSet
[+] private var myPrivateWithin : Symbol
[+] final val name : Name
[+] private val symbol : Symbol
[+] final def accessBoundary ( base: Symbol ) ( implicit ctx: Context ) : Symbol

The class or term symbol up to which this symbol is accessible, or RootClass if it is public. As java protected statics are otherwise completely inaccessible in scala, they are treated as public.

[+] def accessedFieldOrGetter ( implicit ctx: Context ) : Symbol

The field accessed by this getter or setter, or if it does not exist, the getter

[+] def accessorNamed ( name: TermName ) ( implicit ctx: Context ) : Symbol
[+] private def adaptFlags ( flags: FlagSet ) : FlagSet

Adapt flag set to this denotation's term or type nature

[+] final def addAnnotation ( annot: Annotation ) : Unit

Add given annotation to the annotations of this denotation

[+] final def addAnnotations ( annots: TraversableOnce [ Annotation ] ) ( implicit ctx: Context ) : Unit

Add all given annotations to this symbol

[+] final def allOverriddenSymbols ( implicit ctx: Context ) : Iterator [ Symbol ]

All symbols overridden by this denotation.

[+] final def annotations ( implicit ctx: Context ) : List [ Annotation ]

The annotations of this denotation

[+] def annotationsCarrying ( meta: ClassSymbol ) ( implicit ctx: Context ) : List [ Annotation ]
[+] final def annotations_= ( annots: List [ Annotation ] ) : Unit

Update the annotations of this denotation

[+] def appliedRef ( implicit ctx: Context ) : Type

The typeRef applied to its own type parameters

[+] final def asClass : ClassDenotation

Cast to class denotation

[+] def assertNoSkolems ( tp: Type ) : Unit
[+] final def canHaveCompanion ( implicit ctx: Context ) : Boolean

Can this symbol have a companion module? This is the case if it is a class or an opaque type alias.

[+] final def canMatchInheritedSymbols ( implicit ctx: Context ) : Boolean

If false, this symbol cannot possibly participate in an override, either as overrider or overridee.

[+] def caseAccessors ( implicit ctx: Context ) : List [ Symbol ]
[+] protected def changedClassParents ( info1: Type , info2: Type , completersMatter: Boolean ) : Boolean

Are info1 and info2 ClassInfo types with different parents?

[+] def children ( implicit ctx: Context ) : List [ Symbol ]

If this is a sealed class, its known children in the order of textual occurrence

[+] final def companionClass ( implicit ctx: Context ) : Symbol

The class with the same (type-) name as this module or module class, and which is also defined in the same scope and compilation unit. NoSymbol if this class does not exist.

[+] final def companionModule ( implicit ctx: Context ) : Symbol

The module object with the same (term-) name as this class or module class, and which is also defined in the same scope and compilation unit. NoSymbol if this module does not exist.

[+] private def companionNamed ( name: TypeName ) ( implicit ctx: Context ) : Symbol

Find companion class symbol with given name, or NoSymbol if none exists. Three alternative strategies: 1. If owner is a class, look in its members, otherwise 2. If current compilation unit has a typed tree, determine the defining statement sequence and search its trees, otherwise 3. If context has an enclosing scope which defines this symbol, lookup its companion in the same scope.

[+] final def companionOpaqueType ( implicit ctx: Context ) : Symbol

The opaque type with the same (type-) name as this module or module class, and which is also defined in the same scope and compilation unit. NoSymbol if this type does not exist.

[+] private def companionType ( implicit ctx: Context ) : Symbol
[+] final def completeFrom ( completer: LazyType ) ( implicit ctx: Context ) : Unit
[+] final def completer : LazyType

The completer of this denotation. @pre: Denotation is not yet completed

[+] def copyCaches ( from: SymDenotation , phase: Phase ) ( implicit ctx: Context ) : SymDenotation

Copy mamberNames and baseData caches from given denotation, provided they are valid at given phase.

[+] final def copySymDenotation ( symbol: Symbol , owner: Symbol , name: Name , initFlags: FlagSet , info: Type , privateWithin: Symbol , annotations: List [ Annotation ] ) ( implicit ctx: Context ) : SymDenotation

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$1 : Symbol

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$2 : Symbol

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$3 : Name

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$4 : FlagSet

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$5 : Null

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$6 : Null

Copy this denotation, overriding selective fields

[+] def copySymDenotation$default$7 : Null

Copy this denotation, overriding selective fields

[+] final def currentPackageDecls ( implicit ctx: Context ) : MutableScope

If this is a package class, the symbols entered in it before it is completed. (this is needed to eagerly enter synthetic aliases such as AnyRef into a package class without forcing it. Right now, the only usage is for the AnyRef alias in Definitions.

[+] def currentSymbol ( implicit ctx: Context ) : Symbol

The current declaration in this symbol's class owner that has the same name as this one, and, if there are several, also has the same signature.

[+] def debugString : String
[+] def derivesFrom ( base: Symbol ) ( implicit ctx: Context ) : Boolean

Is this a subclass of base, and is the denoting symbol also different from Null or Nothing?

[+] def directlyInheritedTraits ( implicit ctx: Context ) : List [ ClassSymbol ]

All traits implemented by a class or trait except for those inherited through the superclass.

[+] @tailrec private def dropOtherAnnotations ( anns: List [ Annotation ] , cls: Symbol ) ( implicit ctx: Context ) : List [ Annotation ]
[+] def effectiveName ( implicit ctx: Context ) : Name

The name, except - if this is a module class, strip the module class suffix - if this is a companion object with a clash-avoiding name, strip the "avoid clash" suffix

[+] final def effectiveOwner ( implicit ctx: Context ) : Symbol

The owner, skipping package objects and non-lazy valdefs.

[+] final def enclosingClass ( implicit ctx: Context ) : Symbol

The class containing this denotation. If this denotation is already a class, return itself Definitions flagged with JavaStatic are treated specially. Their enclosing class is not the lexically enclosing class, but in turn the enclosing class of the latter. This reflects the context created by Context#superCallContext, Context#thisCallArgContext for these definitions.

Note, that as packages have ClassSymbols, top level classes will have an enclosingClass with Package flag set.

[+] final def enclosingClassNamed ( name: Name ) ( implicit ctx: Context ) : Symbol

The class containing this denotation which has the given effective name.

[+] final def enclosingMethod ( implicit ctx: Context ) : Symbol

The closest enclosing method containing this definition. A local dummy owner is mapped to the primary constructor of the class.

[+] @tailrec def enclosingMethodOrClass ( implicit ctx: Context ) : Symbol

The closest enclosing method or class of this symbol

[+] final def enclosingPackageClass ( implicit ctx: Context ) : Symbol

The package class containing this denotation

[+] final def enclosingSubClass ( implicit ctx: Context ) : Symbol

The class that encloses the owner of the current context and that is a subclass of this class. NoSymbol if no such class exists.

[+] def enclosure ( implicit ctx: Context ) : Symbol

The closest properly enclosing method or class of this symbol.

[+] final def ensureCompleted ( ) ( implicit ctx: Context ) : Unit

Make sure this denotation is completed

[+] def ensureNotPrivate ( implicit ctx: Context ) : SymDenotation

If denotation is private, remove the Private flag and expand the name if necessary

[+] final def expandedName ( implicit ctx: Context ) : Name

The expanded name of this denotation.

[+] final def extendedOverriddenSymbols ( implicit ctx: Context ) : Iterator [ Symbol ]

Returns all matching symbols defined in parents of the selftype.

[+] def field ( implicit ctx: Context ) : Symbol
[+] final def filterAnnotations ( p: Annotation => Boolean ) ( implicit ctx: Context ) : Unit

Keep only those annotations that satisfy p

[+] final def flags ( implicit ctx: Context ) : FlagSet

The flag set

[+] final def flagsUNSAFE : FlagSet

The flag set without forcing symbol completion. Should be used only for printing.

[+] final def flags_= ( flags: FlagSet ) : Unit

Update the flag set

[+] def flatName ( implicit ctx: Context ) : Name

The encoded flat name of this denotation, where joined names are separated by separator characters.

[+] def fullName ( implicit ctx: Context ) : Name

fullName where `.' is the separator character

[+] def fullNameSeparated ( kind: QualifiedNameKind ) ( implicit ctx: Context ) : Name

The encoded full path name of this denotation, where outer names and inner names are separated by separator strings as indicated by the given name kind. Drops package objects. Represents each term in the owner chain by a simple _$.

[+] def fullNameSeparated ( prefixKind: QualifiedNameKind , kind: QualifiedNameKind , name: Name ) ( implicit ctx: Context ) : Name

The encoded full path name of this denotation (separated by prefixKind), followed by the separator implied by kind and the given name. Drops package objects. Represents each term in the owner chain by a simple _$.

[+] final def getAnnotation ( cls: Symbol ) ( implicit ctx: Context ) : Option [ Annotation ]

Optionally, the annotation matching the given class symbol

[+] def getter ( implicit ctx: Context ) : Symbol
[+] final def hasAnnotation ( cls: Symbol ) ( implicit ctx: Context ) : Boolean

Does this denotation have an annotation matching the given class symbol?

[+] def hasAnonymousChild ( implicit ctx: Context ) : Boolean
[+] def hasDefaultParams ( implicit ctx: Context ) : Boolean

Does this symbol have defined or inherited default parameters?

[+] def hasSkolems ( tp: Type ) : Boolean
[+] override def hasUniqueSym : Boolean

Denotation points to unique symbol; false for overloaded denotations and JointRef denotations.

[+] def implClass ( implicit ctx: Context ) : Symbol
[+] final def infoOrCompleter : Type

The type info, or, if symbol is not yet completed, the completer

[+] protected def info_= ( tp: Type ) : Unit
[+] override def initial : SymDenotation

The version of this SingleDenotation that was valid in the first phase of this run.

[+] override def installAfter ( phase: DenotTransformer ) ( implicit ctx: Context ) : Unit

Install this denotation as the result of the given denotation transformer.

[+] final def is ( fs: FlagSet ) ( implicit ctx: Context ) : Boolean

Has this denotation one of the flags in fs set?

[+] final def is ( fs: FlagSet , butNot: FlagSet ) ( implicit ctx: Context ) : Boolean

Has this denotation one of the flags in fs set, whereas none of the flags in butNot are set?

[+] final def is ( fs: FlagConjunction ) ( implicit ctx: Context ) : Boolean

Has this denotation all of the flags in fs set?

[+] final def is ( fs: FlagConjunction , butNot: FlagSet ) ( implicit ctx: Context ) : Boolean

Has this denotation all of the flags in fs set, whereas none of the flags in butNot are set?

[+] final def isAbsent ( implicit ctx: Context ) : Boolean

Is symbol known to not exist?

[+] final def isAbstractOrAliasType : Boolean

Is this symbol an abstract or alias type?

[+] final def isAbstractOrParamType ( implicit ctx: Context ) : Boolean

Is this symbol an abstract type or type parameter?

[+] final def isAbstractType ( implicit ctx: Context ) : Boolean

Is this symbol an abstract type?

[+] final def isAccessibleFrom ( pre: Type , superAccess: Boolean , whyNot: StringBuffer ) ( implicit ctx: Context ) : Boolean

Is this definition accessible as a member of tree with type pre?

[+] def isAccessibleFrom$default$2 : Boolean

Is this definition accessible as a member of tree with type pre?

[+] def isAccessibleFrom$default$3 : Null

Is this definition accessible as a member of tree with type pre?

[+] final def isAliasType ( implicit ctx: Context ) : Boolean

Is this symbol an alias type?

[+] final def isAnonymousClass ( implicit ctx: Context ) : Boolean

Is this symbol an anonymous class?

[+] final def isAnonymousFunction ( implicit ctx: Context ) : Boolean
[+] final def isAnonymousModuleVal ( implicit ctx: Context ) : Boolean
[+] def isAnyOverride ( implicit ctx: Context ) : Boolean
[+] def isAsConcrete ( that: Symbol ) ( implicit ctx: Context ) : Boolean

Is this symbol concrete, or that symbol deferred?

[+] final def isClass : Boolean

Is this denotation a class?

[+] final def isClassConstructor : Boolean

is this the constructor of a class?

[+] final def isCoDefinedWith ( other: Symbol ) ( implicit ctx: Context ) : Boolean

Is this denotation defined in the same scope and compilation unit as that symbol?

[+] final def isCompleted : Boolean

The denotation is completed: info is not a lazy type and attributes have defined values

[+] final def isCompleting : Boolean

The denotation is in train of being completed

[+] final def isConstructor : Boolean

Is this the constructor of a trait or a class

[+] final def isContainedIn ( boundary: Symbol ) ( implicit ctx: Context ) : Boolean

Is this definition contained in boundary? Same as ownersIterator contains boundary but more efficient.

[+] private def isCurrent ( fs: FlagSet ) : Boolean
[+] final def isEffectiveRoot ( implicit ctx: Context ) : Boolean

Is this symbol the empty package class or its companion object?

[+] def isEffectivelyErased ( implicit ctx: Context ) : Boolean

An erased value or an inline method, excluding @forceInline annotated methods. The latter have to be kept around to get to parity with Scala. This is necessary at least until we have full bootstrap. Right now dotty-bootstrapped involves running the Dotty compiler compiled with Scala 2 with a Dotty runtime library compiled with Dotty. If we erase @forceInline annotated methods, this means that the support methods in dotty.runtime.LazyVals vanish. But they are needed for running the lazy val implementations in the Scala-2 compiled compiler.

[+] final def isEffectivelyFinal ( implicit ctx: Context ) : Boolean

A symbol is effectively final if it cannot be overridden in a subclass

[+] final def isEmptyPackage ( implicit ctx: Context ) : Boolean

Is this symbol the empty package class or its companion object?

[+] def isEnumAnonymClass ( implicit ctx: Context ) : Boolean

Does this symbol refer to anonymous classes synthesized by enum desugaring?

[+] def isError : Boolean

is this symbol the result of an erroneous definition?

[+] def isField ( implicit ctx: Context ) : Boolean
[+] final def isGetter ( implicit ctx: Context ) : Boolean

Is this a getter?

[+] final def isImplClassConstructor : Boolean

Is this the constructor of a trait?

[+] final def isImport : Boolean

is this a symbol representing an import?

[+] def isInaccessibleChildOf ( cls: Symbol ) ( implicit ctx: Context ) : Boolean

Is this symbol defined locally (i.e. at some level owned by a term) and defined in a different toplevel class than its supposed parent class cls? Such children are not pickled, and have to be reconstituted manually.

[+] @tailrec final def isIncompleteIn ( base: Symbol ) ( implicit ctx: Context ) : Boolean

A member of class base is incomplete if (1) it is declared deferred or (2) it is abstract override and its super symbol in base is nonexistent or incomplete.

[+] def isInlineMethod ( implicit ctx: Context ) : Boolean
[+] final def isLinkedWith ( sym: Symbol ) ( implicit ctx: Context ) : Boolean

Is this symbol the same or a linked class of sym?

[+] @tailrec def isLocal ( implicit ctx: Context ) : Boolean

Is symbol directly or indirectly owned by a term symbol?

[+] final def isLocalDummy : Boolean

Is this a local template dummmy?

[+] def isNoInitsClass ( implicit ctx: Context ) : Boolean

Is this a denotation of a class that does not have - either direct or inherited - initaliazion code?

[+] def isNotRuntimeClass ( implicit ctx: Context ) : Boolean

Is symbol a class for which no runtime representation exists?

[+] final def isNullableClass ( implicit ctx: Context ) : Boolean

Is this symbol a class references to which that are supertypes of null?

[+] def isNumericValueClass ( implicit ctx: Context ) : Boolean

Is symbol a primitive numeric value class?

[+] def isOpaqueAlias ( implicit ctx: Context ) : Boolean

Is this symbol a user-defined opaque alias type?

[+] def isOpaqueCompanion ( implicit ctx: Context ) : Boolean

Is this symbol the companion of an opaque alias type?

[+] def isOpaqueHelper ( implicit ctx: Context ) : Boolean

Is this symbol a synthetic opaque type inside an opaque companion object?

[+] def isPackageObject ( implicit ctx: Context ) : Boolean

Is this symbol a package object or its module class?

[+] def isParamOrAccessor ( implicit ctx: Context ) : Boolean

A type or term parameter or a term parameter accessor

[+] final def isPrimaryConstructor ( implicit ctx: Context ) : Boolean

Does this symbol denote the primary constructor of its enclosing class?

[+] def isPrimitiveValueClass ( implicit ctx: Context ) : Boolean

Is symbol a primitive value class?

[+] final def isProperlyContainedIn ( boundary: Symbol ) ( implicit ctx: Context ) : Boolean
[+] def isQuote ( implicit ctx: Context ) : Boolean

Is symbol a quote operation?

[+] final def isRealClass ( implicit ctx: Context ) : Boolean

Is this denotation a non-trait class?

[+] final def isRealMethod ( implicit ctx: Context ) : Boolean

Is this a "real" method? A real method is a method which is: - not an accessor - not an anonymous function

[+] final def isRefinementClass ( implicit ctx: Context ) : Boolean

Is this symbol a class representing a refinement? These classes are used only temporarily in Typer and Unpickler as an intermediate step for creating Refinement types.

[+] final def isRoot : Boolean

Is this symbol the root class or its companion object?

[+] final def isSelfSym ( implicit ctx: Context ) : Boolean

Is this the denotation of a self symbol of some class? This is the case if one of two conditions holds: 1. It is the symbol referred to in the selfInfo part of the ClassInfo which is the type of this symbol's owner. 2. This symbol is owned by a class, it's selfInfo field refers to a type (indicating the self definition does not introduce a name), and the symbol's name is "_". TODO: Find a more robust way to characterize self symbols, maybe by spending a Flag on them?

[+] def isSerializable ( implicit ctx: Context ) : Boolean

Is this symbol a class that extends java.io.Serializable ?

[+] final def isSetter ( implicit ctx: Context ) : Boolean

Is this a setter?

[+] def isSkolem : Boolean
[+] def isSplice ( implicit ctx: Context ) : Boolean

Is symbol a splice operation?

[+] final def isStableMember ( implicit ctx: Context ) : Boolean

Is this a denotation of a stable term (or an arbitrary type)? Terms are stable if they are idempotent (as in TreeInfo.Idempotent): that is, they always return the same value, if any.

A member is stable, basically, if it behaves like a field projection: that is, it projects a constant result out of its owner.

However, a stable member might not yet be initialized (if it is an object or anyhow lazy). So the first call to a stable member might fail and/or produce side effects.

[+] final def isStatic ( implicit ctx: Context ) : Boolean

Is this denotation static (i.e. with no outer instance)?

[+] final def isStaticConstructor ( implicit ctx: Context ) : Boolean

Does this symbol denote the static constructor of its enclosing class?

[+] final def isStaticOwner ( implicit ctx: Context ) : Boolean

Is this a package class or module class that defines static symbols?

[+] def isSubClass ( base: Symbol ) ( implicit ctx: Context ) : Boolean

Is this a subclass of the given class base?

[+] def isSuperAccessor ( implicit ctx: Context ) : Boolean
[+] final def isTopLevelClass ( implicit ctx: Context ) : Boolean
[+] override def isType : Boolean

Is this denotation a type?

[+] def isTypeCast ( implicit ctx: Context ) : Boolean
[+] def isTypeTest ( implicit ctx: Context ) : Boolean
[+] def isTypeTestOrCast ( implicit ctx: Context ) : Boolean
[+] final def isValueClass ( implicit ctx: Context ) : Boolean

Is this symbol a class that extends AnyVal?

[+] final def isValueClassConvertMethod ( implicit ctx: Context ) : Boolean

Is this a synthetic method that represents conversions between representations of a value class These methods are generated in ExtensionMethods and used in ElimErasedValueType.

[+] def isVolatile ( implicit ctx: Context ) : Boolean
[+] def isWeakOwner ( implicit ctx: Context ) : Boolean

Symbol is an owner that would be skipped by effectiveOwner. Skipped are - package objects - non-lazy valdefs

[+] final def lexicallyEnclosingClass ( implicit ctx: Context ) : Symbol

A class that in source code would be lexically enclosing

[+] final def linkedClass ( implicit ctx: Context ) : Symbol

If this is a class, the module class of its companion object. If this is a module class, its companion class. NoSymbol otherwise.

[+] final def markAbsent ( ) : Unit

Make denotation not exist

[+] def matchNullaryLoosely ( implicit ctx: Context ) : Boolean

()T and => T types should be treated as equivalent for this symbol. Note: For the moment, we treat Scala-2 compiled symbols as loose matching, because the Scala library does not always follow the right conventions. Examples are: isWhole(), toInt(), toDouble() in BigDecimal, Numeric, RichInt, ScalaNumberProxy.

[+] final def matchingDecl ( inClass: Symbol , site: Type ) ( implicit ctx: Context ) : Symbol

The non-private symbol whose name and type matches the type of this symbol in the given class.

[+] final def matchingMember ( site: Type ) ( implicit ctx: Context ) : Symbol

The non-private member of site whose name and type matches the type of this symbol

[+] final def memberCanMatchInheritedSymbols ( implicit ctx: Context ) : Boolean

If false, this class member cannot possibly participate in an override, either as overrider or overridee.

[+] def membersNeedAsSeenFrom ( pre: Type ) ( implicit ctx: Context ) : Boolean

Do members of this symbol need translation via asSeenFrom when accessed via prefix pre?

[+] def mixins ( implicit ctx: Context ) : List [ ClassSymbol ]

All traits implemented by a class, except for those inherited through the superclass. The empty list if self is a trait.

[+] final def moduleClass ( implicit ctx: Context ) : Symbol

The class implementing this module, NoSymbol if not applicable.

[+] def namedType ( implicit ctx: Context ) : NamedType

The NamedType representing this denotation at its original location. Same as either typeRef or termRef depending whether this denotes a type or not.

[+] protected def newLikeThis ( s: Symbol , i: Type ) : SingleDenotation
[+] final def normalizeOpaque ( ) ( implicit ctx: Context ) : Unit

If this is a synthetic opaque type alias, mark it as Deferred with empty bounds

[+] def opaqueAlias ( implicit ctx: Context ) : Type

The alias of a synthetic opaque type that's stored in the self type of the containing object.

[+] final def originalName ( implicit ctx: Context ) : Name

The name with which the denoting symbol was created

[+] private def overriddenFromType ( tp: Type ) ( implicit ctx: Context ) : Iterator [ Symbol ]
[+] final def overriddenSymbol ( inClass: ClassSymbol , siteClass: ClassSymbol ) ( implicit ctx: Context ) : Symbol

The symbol, in class inClass, that is overridden by this denotation in class siteClass.

[+] def overriddenSymbol$default$2 : ClassSymbol

The symbol, in class inClass, that is overridden by this denotation in class siteClass.

[+] final def overridingSymbol ( inClass: ClassSymbol ) ( implicit ctx: Context ) : Symbol

The symbol overriding this symbol in given subclass ofclazz.

[+] def owner : Symbol

The owner of the symbol; overridden in NoDenotation

[+] final def ownersIterator ( implicit ctx: Context ) : Iterator [ Symbol ]

The chain of owners of this denotation, starting with the denoting symbol itself

[+] def primaryConstructor ( implicit ctx: Context ) : Symbol

The primary constructor of a class or trait, NoSymbol if not applicable.

[+] final def privateWithin ( implicit ctx: Context ) : Symbol

The privateWithin boundary, NoSymbol if no boundary is given.

[+] protected final def privateWithin_= ( sym: Symbol ) : Unit

Set privateWithin.

[+] def registerCompanion ( target: Symbol ) ( implicit ctx: Context ) : Unit

Register target as a companion; overridden in ClassDenotation

[+] def registeredCompanion ( implicit ctx: Context ) : Symbol

The registered companion; overridden in ClassDenotation

[+] def registeredCompanion_= ( c: Symbol ) : Unit
[+] final def relevantFlagsFor ( fs: FlagSet ) ( implicit ctx: Context ) : FlagSet
[+] final def removeAnnotation ( cls: Symbol ) ( implicit ctx: Context ) : Unit

Remove annotation with given class from this denotation

[+] final def resetFlag ( flags: FlagSet ) : Unit

Unset given flags(s) of this denotation

[+] final def scalacLinkedClass ( implicit ctx: Context ) : Symbol
[+] final def setFlag ( flags: FlagSet ) : Unit

Set given flags(s) of this denotation

[+] final def setNoInitsFlags ( parentFlags: FlagSet , bodyFlags: FlagSet ) : Unit

Set applicable flags in {NoInits, PureInterface}

[+] def setter ( implicit ctx: Context ) : Symbol
[+] def skipConstructor ( implicit ctx: Context ) : Symbol

If this is a constructor, its owner: otherwise this.

[+] final def skipWeakOwner ( implicit ctx: Context ) : Symbol

If this is a weak owner, its owner, otherwise the denoting symbol.

[+] final def sourceModule ( implicit ctx: Context ) : Symbol

The module implemented by this module class, NoSymbol if not applicable.

[+] def subst ( from: List [ Symbol ] , to: List [ Symbol ] ) : Symbol

Apply symbol/symbol substitution to this symbol

[+] final def superSymbolIn ( base: Symbol ) ( implicit ctx: Context ) : Symbol

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

[+] def termRef ( implicit ctx: Context ) : TermRef
[+] def thisType ( implicit ctx: Context ) : Type

The type This(cls), where cls is this class, NoPrefix for all other symbols

[+] override def toString : String
[+] final def topLevelClass ( implicit ctx: Context ) : Symbol

The top-level class containing this denotation, except for a toplevel module, where its module class is returned.

[+] def traitOfImplClass ( implicit ctx: Context ) : Symbol
[+] override def transformAfter ( phase: DenotTransformer , f: SymDenotation => SymDenotation ) ( implicit ctx: Context ) : Unit

Apply a transformation f to all denotations in this group that start at or after given phase. Denotations are replaced while keeping the same validity periods.

[+] final def transformAnnotations ( f: Annotation => Annotation ) ( implicit ctx: Context ) : Unit

Apply transform f to all annotations of this denotation

[+] def typeParamCreationFlags : FlagSet

The flags to be used for a type parameter owned by this symbol. Overridden by ClassDenotation.

[+] def typeParams ( implicit ctx: Context ) : List [ TypeSymbol ]

The type parameters of a class symbol, Nil for all other symbols

[+] def typeRef ( implicit ctx: Context ) : TypeRef
[+] def underlyingSymbol ( implicit ctx: Context ) : Symbol

The field accessed by a getter or setter, or if it does not exists, the getter of a setter, or if that does not exist the symbol itself.

[+] final def unforcedAnnotation ( cls: Symbol ) ( implicit ctx: Context ) : Option [ Annotation ]

The same as getAnnotation, but without ensuring that the symbol carrying the annotation is completed

[+] final def unforcedDecls ( implicit ctx: Context ) : Scope

The symbols defined in this class or object. Careful! This does not force the type, so is compilation order dependent. This method should be used only in the following circumstances:

  1. When accessing type parameters or type parameter accessors (both are entered before completion).
  2. When obtaining the current scope in order to enter, rename or delete something there.
  3. When playing it safe in order not to raise CylicReferences, e.g. for printing things or taking more efficient shortcuts (e.g. the stillValid test).
[+] final def unforcedInfo : Option [ Type ]

Optionally, the info if it is completed

[+] final def unforcedIsAbsent ( implicit ctx: Context ) : Boolean

Is symbol known to not exist, or potentially not completed yet?

[+] final def updateAnnotation ( annot: Annotation ) ( implicit ctx: Context ) : Unit

Remove any annotations with same class as annot, and add annot

[+] final def variance ( implicit ctx: Context ) : Int

The variance of this type parameter or type member as an Int, with +1 = Covariant, -1 = Contravariant, 0 = Nonvariant, or not a type parameter

[+] def withAnnotationsCarrying ( from: Symbol , meta: ClassSymbol ) ( implicit ctx: Context ) : self.type