Spec-Zone.ru › Scala 2.13 Reflection

Трейт scala.reflect.api.Exprs

trait Exprs extends AnyRef

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

Трейт, определяющий сильно типизированные обёртки деревьев и операции над ними для использования в Scala Reflection.

Expr оборачивает абстрактное синтаксическое дерево (scala.reflect.api.Trees#Tree) и маркирует его своим типом (scala.reflect.api.Types#Type).

Обычно Expr создаются с помощью scala.reflect.api.Universe#reify, в этом случае компилятор создаёт scala.reflect.api.TreeCreator для заданного выражения и также создаёт дополнительный scala.reflect.api.TypeTags#WeakTypeTag, соответствующий типу этого выражения.

Expr также можно создать вручную с помощью Expr компаньон-объекта, но тогда на программисте лежит ответственность за предоставление TreeCreator. Рефлексия во время компиляции с помощью макросов, как описано в scala.reflect.macros.Aliases, предоставляет более удобный способ ручного создания exprs. Однако ручное создание крайне редко необходимо при работе с рефлексией во время выполнения.

Expr можно перенести из одного зеркала в другое, используя метод in. Перенос означает, что все символические ссылки на классы/объекты/пакеты в выражении переопределяются в новом зеркале (обычно с помощью загрузчика классов этого зеркала). По умолчанию вселенная Expr обычно scala.reflect.runtime#universe, а зеркало по умолчанию — scala.reflect.runtime#currentMirror.

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

Type Members

trait Expr[+T] extends Equals with Serializable

Expr оборачивает абстрактное синтаксическое дерево и маркирует его своим типом. Основным источником информации об exprs является страница scala.reflect.api.Exprs.

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

final def !=(arg0: Any): Boolean

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

final def ##(): Int

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

def +(other: String): String

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

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

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

final def ==(arg0: Any): Boolean

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

final def asInstanceOf[T0]: T0

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

def clone(): AnyRef

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

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

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

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

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

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

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

def ensuring(cond: Boolean): Exprs

Неявный
Этот член добавлен неявным преобразованием из Exprs вEnsuring[Exprs] выполненное методом 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

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

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

Определения классов
AnyRef → Any
Аннотации
@native()

def hashCode(): Int

Определения классов
AnyRef → Any
Аннотации
@native()

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()

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

Определения классов
AnyRef

def toString(): String

Определения классов
AnyRef → Any

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()

object Expr extends java.io.Serializable

Конструктор/Экстрактор для Expr.

Может быть полезен при наличии дерева и желании вставить его в вызов reify, в этом случае дерево сначала должно быть обернуто в expr.

Основным источником информации о exprs является страница scala.reflect.api.Exprs.

© 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/api/Exprs.html

Spec-Zone.ru

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