Класс scala.reflect.macros.Attachments
абстрактный класс Attachments extends AnyRef
Конструкторы экземпляров
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
ЭКСПЕРИМЕНТАЛЬНО
Приложения предоставляют способ ассоциировать пользовательские метаданные с символами и деревьями.
Наряду с
symbolиtpe, которые представляют собой основные метаданные деревьев, каждое дерево содержит полеattachments, которое может хранить другие метаданные: определенные компилятором (например, позиции) или определенные пользователем. То же самое относится к символам, которые также имеют расширяемые метаданные благодаря тому же полюattachments.Обычно приложения просто хранят scala.reflect.api.Position, но они могут быть расширены, чтобы охватывать произвольные полезные данные. Полезные данные хранятся в индексированных по типу слотах, которые можно прочитать с помощью
get[T]и записать с помощьюupdate[T]иremove[T].Этот API не имеет большого практического применения в API времени выполнения рефлексии (пакет scala.reflect.api), но он может быть полезен для авторов макросов, предоставляя способ координации нескольких макросов, работающих над одним кодом. Поэтому поле
attachmentsобъявляется только в деревьях и символах, принадлежащих scala.reflect.macros.Universe.