LinkSource

dotty.tools.dotc.util.Attachment.LinkSource
trait LinkSource

An implementation trait for attachments. Clients should inherit from Container instead.

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait Container
class Tree[T]
class Block[T]
class XMLBlock
class CaseDef[T]
class DenotingTree[T]
trait DefTree[T]
class NamedDefTree[T]
class Bind[T]
class MemberDef[T]
class TypeDef[T]
class ValOrDefDef[T]
class DefDef[T]
class ValDef[T]
class EmptyValDef[T]
trait ValOrTypeDef[T]
class ModuleDef
class Template[T]
class ImportOrExport[T]
class Export[T]
class Import[T]
class NameTree[T]
class Labeled[T]
class RefTree[T]
class Ident[T]
class Select[T]
class SelectWithSig[T]
class This[T]
class TypeTree[T]
class InferredTypeTree[T]
class TermRefTree
class TypeRefTree
class Hole[T]
class Inlined[T]
class Literal[T]
class NamedArg[T]
class New[T]
trait PatternTree[T]
class Alternative[T]
class QuotePattern[T]
class UnApply[T]
class ProxyTree[T]
class Annotated[T]
class AppliedTypeTree[T]
class GenericApply[T]
class Apply[T]
class TypeApply[T]
class PackageDef[T]
class RefinedTypeTree[T]
class Super[T]
class Typed[T]
class Parens
class TypedSplice
class SeqLiteral[T]
class JavaSeqLiteral[T]
trait TermTree[T]
class Assign[T]
class Closure[T]
class If[T]
class InlineIf[T]
class Match[T]
class InlineMatch[T]
class Quote[T]
class Return[T]
class Splice[T]
class SplicePattern[T]
class Try[T]
class WhileDo[T]
class Thicket[T]
class EmptyTree[T]
trait TypTree[T]
class ByNameTypeTree[T]
class LambdaTypeTree[T]
class MatchTypeTree[T]
class TypeBoundsTree[T]
trait WithoutTypeOrPos[T]
class ExtMethods
class Function
class GenAlias
class GenFrom
class MacroTree
class OpTree
class InfixOp
class PostfixOp
class PrefixOp
class PolyFunction
class Tuple
Show all

Members list

Value members

Concrete methods

final def allAttachments: List[(Key[_], Any)]

The list of all keys and values attached to this container.

The list of all keys and values attached to this container.

Attributes

final def attachment[V](key: Key[V]): V

The attachment corresponding to key.

The attachment corresponding to key.

Attributes

Throws
NoSuchElementException

if no attachment with key exists

final def attachmentOrElse[V](key: Key[V], default: V): V

The attachment corresponding to key, or default if no attachment with key exists.

The attachment corresponding to key, or default if no attachment with key exists.

Attributes

final def getAttachment[V](key: Key[V]): Option[V]

Optionally get attachment corresponding to key

Optionally get attachment corresponding to key

Attributes

final def hasAttachment[V](key: Key[V]): Boolean

Does an attachment corresponding to key exist?

Does an attachment corresponding to key exist?

Attributes

final def putAttachment[V](key: Key[V], value: V): Option[V]

Add attachment with given key and value.

Add attachment with given key and value.

Attributes

Returns

Optionally, the old attachment with given key if one existed before. The new attachment is added at the position of the old one, or at the end if no attachment with same key existed.

final def removeAttachment[V](key: Key[V]): Option[V]

Remove attachment with given key, if it exists.

Remove attachment with given key, if it exists.

Attributes

Returns

Optionally, the removed attachment with given key if one existed before.