CaptureAnnotation

dotty.tools.dotc.cc.CaptureAnnotation
case class CaptureAnnotation(refs: CaptureSet, boxed: Boolean)(cls: Symbol) extends Annotation

An annotation representing a capture set and whether it is boxed. It simulates a normal @retains annotation except that it is more efficient, supports variables as capture sets, and adds a boxed flag. These annotations are created during capture checking. Before that there are only regular @retains and @retainsByName annotations.

Value parameters

boxed

whether the type carrying the annotation is boxed

cls

the underlying class (either annotation.retains or annotation.retainsByName)

refs

the capture set

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Annotation
trait Showable
class Object
trait Matchable
class Any
Show all

Members list

Value members

Concrete methods

A boxed annotation which is either the same annotation or its boxDual

A boxed annotation which is either the same annotation or its boxDual

Attributes

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
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 sameAnnotation(that: Annotation)(using Context): Boolean

Attributes

Definition Classes
override def symbol(using Context): Symbol

Attributes

Definition Classes
override def toText(printer: Printer): Text

A string representation of the annotation. Overridden in BodyAnnotation.

A string representation of the annotation. Overridden in BodyAnnotation.

Attributes

Definition Classes
override def tree(using Context): Tree

Reconstitute annotation tree from capture set

Reconstitute annotation tree from capture set

Attributes

Definition Classes

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 arguments(using Context): List[Tree]

All arguments to this annotation in a single flat list

All arguments to this annotation in a single flat list

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 evaluaton is in progress.

The tree evaluaton is in progress.

Attributes

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

Attributes

Inherited from:
Annotation

Attributes

Inherited from:
Product

Attributes

Inherited from:
Product
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

Concrete fields

A cache for the version of this annotation which differs in its boxed status.

A cache for the version of this annotation which differs in its boxed status.

Attributes