CompactAnnotation

dotty.tools.dotc.core.Annotations.CompactAnnotation
See theCompactAnnotation companion object
class CompactAnnotation(val tpe: Type) extends Annotation

A class for optimized, compact annotations that are defined by a type instead of a tree. This makes mapping such annotations a lot faster and safer. In fact, in retrospect, most annotations would better be represented as CompactAnnotations.

CompactAnnotation is extended by cc.RetainingAnnotation, which is reserved for @retains, @retainsByName and @retainsCap. For now there are no CompactAnnotations other than RetainingAnnotations but this could be changed in the future, after 3.9 has shipped.

Attributes

Companion
object
Graph
Supertypes
class Annotation
trait Showable
class Object
trait Matchable
class Any
Known subtypes

Members list

Value members

Concrete methods

override def argumentConstant(i: Int)(using Context): Option[Constant]

Attributes

Definition Classes
def argumentType(i: Int)(using Context): Type
override def argumentTypes(using Context): List[Type]

All type arguments of this annotation in a single flat list

All type arguments of this annotation in a single flat list

Attributes

Definition Classes
override def arguments(using Context): List[Tree]

All term arguments of this annotation in a single flat list

All term arguments of this annotation in a single flat list

Attributes

Definition Classes
override def derivedAnnotation(tree: Tree)(using Context): Annotation

Attributes

Definition Classes
override def eql(that: Annotation): Boolean

Attributes

Definition Classes
override def hash: Int

Operations for hash-consing, can be overridden

Operations for hash-consing, can be overridden

Attributes

Definition Classes
override def mapWith(tm: TypeMap)(using Context): Annotation

Normally, applies a type map to all tree nodes of this annotation, but can be overridden. Returns EmptyAnnotation if type type map produces a range type, since ranges cannot be types of trees.

Normally, applies a type map to all tree nodes of this annotation, but can be overridden. Returns EmptyAnnotation if type type map produces a range type, since ranges cannot be types of trees.

Attributes

Definition Classes
def oldTree(using Context): Tree
override def refersToParamOf(tl: TermLambda)(using Context): Boolean

Does this annotation refer to a parameter of tl?

Does this annotation refer to a parameter of tl?

Attributes

Definition Classes
override def symbol(using Context): Symbol

Attributes

Definition Classes
def tree(using Context): Tree

Inherited methods

Attributes

Inherited from:
Annotation
def argument(i: Int)(using Context): Option[Tree]

Attributes

Inherited from:
Annotation

Attributes

Inherited from:
Annotation

Attributes

Inherited from:
Annotation
def fallbackToText(printer: Printer): Text

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

A fallback text representation, if the pattern matching in Printers does not have a case for this showable element

Attributes

Inherited from:
Showable
def hasOneOfMetaAnnotation(metaSyms: Set[Symbol], orNoneOf: Set[Symbol] = ...)(using Context): Boolean

Attributes

Inherited from:
Annotation
def hasSymbol(sym: Symbol)(using Context): Boolean

Attributes

Inherited from:
Annotation

The tree evaluation has finished.

The tree evaluation has finished.

Attributes

Inherited from:
Annotation

The tree evaluation is in progress.

The tree evaluation is in progress.

Attributes

Inherited from:
Annotation
def matches(cls: Symbol)(using Context): Boolean

Attributes

Inherited from:
Annotation

Attributes

Inherited from:
Annotation
def show(using Context): String

The string representation of this showable element.

The string representation of this showable element.

Attributes

Inherited from:
Showable
def showIndented(margin: Int)(using Context): String

The string representation with each line after the first one indented by the given given margin (in spaces).

The string representation with each line after the first one indented by the given given margin (in spaces).

Attributes

Inherited from:
Showable
def showSummary(depth: Int = ...)(using Context): String

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

The summarized string representation of this showable element. Recursion depth is limited to some smallish value. Default is Config.summarizeDepth.

Attributes

Inherited from:
Showable
def toText(printer: Printer): Text

A string representation of the annotation. Overridden in BodyAnnotation.

A string representation of the annotation. Overridden in BodyAnnotation.

Attributes

Inherited from:
Annotation

Concrete fields

val tpe: Type