Spec-Zone.ru › Scala 2.13 Reflection

Класс scala.reflect.macros.Attachments

абстрактный класс Attachments extends AnyRef

ЭКСПЕРИМЕНТАЛЬНО

Приложения предоставляют способ ассоциировать пользовательские метаданные с символами и деревьями.

Наряду с symbol и tpe, которые представляют собой основные метаданные деревьев, каждое дерево содержит поле attachments, которое может хранить другие метаданные: определенные компилятором (например, позиции) или определенные пользователем. То же самое относится к символам, которые также имеют расширяемые метаданные благодаря тому же полю attachments.

Обычно приложения просто хранят scala.reflect.api.Position, но они могут быть расширены, чтобы охватывать произвольные полезные данные. Полезные данные хранятся в индексированных по типу слотах, которые можно прочитать с помощью get[T] и записать с помощью update[T] и remove[T].

Этот API не имеет большого практического применения в API времени выполнения рефлексии (пакет scala.reflect.api), но он может быть полезен для авторов макросов, предоставляя способ координации нескольких макросов, работающих над одним кодом. Поэтому поле attachments объявляется только в деревьях и символах, принадлежащих scala.reflect.macros.Universe.

Self Type
Attachments
Source
Attachments.scala
Линейные супертипы
AnyRef, Any
Известные подклассы
Position

Конструкторы экземпляров

new Attachments()

Типовые члены

абстрактный тип Pos >: Null

Абстрактные члены значений

абстрактный def pos: Pos

абстрактный def withPos(newPos: Pos): Attachments { type Pos = Attachments.this.Pos }

Члены-значения

final def !=(arg0: Any): Boolean

Определяющие классы
AnyRef → Any

final def ##(): Int

Определяющие классы
AnyRef → Any

def +(other: String): String

Неявный
Этот член добавлен неявным преобразованием из Attachments вany2stringadd[Attachments] с помощью метода any2stringadd в scala.Predef.
Определяющие классы
any2stringadd

def ->[B](y: B): (Attachments, B)

Неявный
Этот член добавлен неявным преобразованием из Attachments вArrowAssoc[Attachments] с помощью метода ArrowAssoc в scala.Predef.
Определяющие классы
ArrowAssoc
Аннотации
@inline()

final def ==(arg0: Any): Boolean

Определяющие классы
AnyRef → Any

def all: Set[Any]

final def asInstanceOf[T0]: T0

Определяющие классы
Any

def clone(): AnyRef

Атрибуты
protected[java.lang]
Определяющие классы
AnyRef
Аннотации
@throws(classOf[java.lang.CloneNotSupportedException]) @native()

def contains[T](implicit arg0: ClassTag[T]): Boolean

def ensuring(cond: (Attachments) => Boolean, msg: => Any): Attachments

Неявный
Этот член добавлен неявным преобразованием из Attachments вEnsuring[Attachments] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: (Attachments) => Boolean): Attachments

Неявный
Этот член добавлен неявным преобразованием из Attachments вEnsuring[Attachments] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean, msg: => Any): Attachments

Неявный
Этот член добавлен неявным преобразованием из Attachments вEnsuring[Attachments] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

def ensuring(cond: Boolean): Attachments

Неявный
Этот член добавлен неявным преобразованием из Attachments вEnsuring[Attachments] с помощью метода Ensuring в scala.Predef.
Определяющие классы
Ensuring

final def eq(arg0: AnyRef): Boolean

Определяющие классы
AnyRef

def equals(arg0: AnyRef): Boolean

Определяющие классы
AnyRef → Any

def finalize(): Unit

Атрибуты
protected[java.lang]
Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.Throwable])

def formatted(fmtstr: String): String

Неявный
Этот член добавлен с помощью неявного преобразования из Attachments вStringFormat[Attachments] с помощью метода StringFormat в scala.Predef.
Классы определений
StringFormat
Аннотации
@inline()

def get[T](implicit arg0: ClassTag[T]): Option[T]

final def getClass(): Class[_ <: AnyRef]

Классы определений
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Классы определений
AnyRef → Any
Аннотации
@native()

def isEmpty: Boolean

final def isInstanceOf[T0]: Boolean

Классы определений
Any

final def ne(arg0: AnyRef): Boolean

Классы определений
AnyRef

final def notify(): Unit

Классы определений
AnyRef
Аннотации
@native()

final def notifyAll(): Unit

Классы определений
AnyRef
Аннотации
@native()

def remove[T](implicit arg0: ClassTag[T]): Attachments { type Pos = Attachments.this.Pos }

final def synchronized[T0](arg0: => T0): T0

Классы определений
AnyRef

def toString(): String

Классы определений
AnyRef → Any

def update[T](attachment: T)(implicit arg0: ClassTag[T]): Attachments { type Pos = Attachments.this.Pos }

Создаёт копию этого вложения с добавленным/обновлённым слотом полезной нагрузки типа T с предоставленным значением. Заменяет существующую полезную нагрузку того же типа, если она существует.

final def wait(): Unit

Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long, arg1: Int): Unit

Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Классы определений
AnyRef
Аннотации
@throws(classOf[java.lang.InterruptedException]) @native()

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala-reflect/scala/reflect/macros/Attachments.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API