SymUtils

dotty.tools.dotc.core.SymUtils
class SymUtils

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object Symbols

Members list

Extensions

Extensions

extension (self: Symbol)
def accessorNamed(name: TermName)(using Context): Symbol

The ConstantType of a val known to be isConstrExprFinalVal.

The ConstantType of a val known to be isConstrExprFinalVal.

Attributes

The declared self type of this class, as seen from site, stripping all refinements for opaque types.

The declared self type of this class, as seen from site, stripping all refinements for opaque types.

Attributes

def deriveTargetNameAnnotation(original: Symbol, nameFn: Name => Name)(using Context): Unit

If original has a target name annotation, add one to this symbol as well such that the new target name is original's target name transformed by nameFn.

If original has a target name annotation, add one to this symbol as well such that the new target name is original's target name transformed by nameFn.

Attributes

All traits implemented by a class or trait except for those inherited through the superclass. Traits are given in the order they appear in the parents clause (which is the reverse of their order in baseClasses)

All traits implemented by a class or trait except for those inherited through the superclass. Traits are given in the order they appear in the parents clause (which is the reverse of their order in baseClasses)

Attributes

The closest enclosing method or class of this symbol

The closest enclosing method or class of this symbol

Attributes

final def enclosure(using Context): Symbol

The closest properly enclosing method or class of this symbol.

The closest properly enclosing method or class of this symbol.

Attributes

def field(using Context): Symbol
def getter(using Context): Symbol

Is this symbol a constant expression final val?

Is this symbol a constant expression final val?

This is the case if all of the following are true:

  • it is a final val,
  • its result type is a ConstantType, and
  • it does not need an explicit field because of Scala.js semantics (see JSSymUtils.sjsNeedsField).

Constant expression final vals do not need an explicit field to store their value. See the Memoize-Mixin-Constructors phase trio.

Attributes

Is symbol assumed or declared as an infix symbol?

Is symbol assumed or declared as an infix symbol?

Attributes

def isEnum(using Context): Boolean

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

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

Attributes

def isEnumCase(using Context): Boolean

Is symbol declared or inherits @experimental?

Is symbol declared or inherits @experimental?

Attributes

def isField(using Context): Boolean
def isGenericSum(pre: Type)(using Context): Boolean

Is this the method that summons a structural given instance?

Is this the method that summons a structural given instance?

Attributes

Is this symbol defined locally (i.e. at some level owned by a term) so that it cannot be seen from parent class cls?

Is this symbol defined locally (i.e. at some level owned by a term) so that it cannot be seen from parent class cls?

Attributes

final def isLocal(using Context): Boolean

Is symbol directly or indirectly owned by a term symbol?

Is symbol directly or indirectly owned by a term symbol?

Attributes

Is this symbol directly owner by a term symbol, i.e., is it local to a block?

Is this symbol directly owner by a term symbol, i.e., is it local to a block?

Attributes

def isNoValue(using Context): Boolean
def isOldStyleImplicitConversion(directOnly: Boolean, forImplicitClassOnly: Boolean)(using Context): Boolean

Is this an old style implicit conversion?

Is this an old style implicit conversion?

Value parameters

directOnly

only consider explicitly written methods

forImplicitClassOnly

only consider methods generated from implicit classes

Attributes

Is this a type or term parameter or a term parameter accessor?

Is this a type or term parameter or a term parameter accessor?

Attributes

def isTypeCast(using Context): Boolean

Is symbol a type splice operation?

Is symbol a type splice operation?

Attributes

def isTypeTest(using Context): Boolean
def isVolatile(using Context): Boolean

The return type as seen from the body of this definition. It is computed from the symbol's type by replacing param refs by param symbols.

The return type as seen from the body of this definition. It is computed from the symbol's type by replacing param refs by param symbols.

Attributes

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

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

Attributes

def returnProto(using Context): Type

The expected type of a return to self at the place indicated by the context. This is the local return type instantiated by the symbols of any context function closures that enclose the site of the return

The expected type of a return to self at the place indicated by the context. This is the local return type instantiated by the symbols of any context function closures that enclose the site of the return

Attributes

def setter(using Context): Symbol
final def skipConstructor(using Context): Symbol

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

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

Attributes

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

Apply symbol/symbol substitution to this symbol

Apply symbol/symbol substitution to this symbol

Attributes

def traitSetter(using Context): Symbol

Is this a case class for which a product mirror is generated? Excluded are value classes, abstract classes and case classes with more than one parameter section.

Is this a case class for which a product mirror is generated? Excluded are value classes, abstract classes and case classes with more than one parameter section.

Attributes

def whyNotGenericSum(pre: Type)(using Context): String

Is this a sealed class or trait for which a sum mirror is generated? It must satisfy the following conditions:

Is this a sealed class or trait for which a sum mirror is generated? It must satisfy the following conditions:

  • it has at least one child class or object
  • none of its children are anonymous classes
  • all of its children are addressable through a path from the parent class and also the location of the generated mirror.
  • all of its children are generic products, singletons, or generic sums themselves.

Attributes

def withAnnotationsCarrying(from: Symbol, meta: Symbol, orNoneOf: Set[Symbol])(using Context): self.type