Класс scala.reflect.runtime.JavaUniverse
класс JavaUniverse extends internal.SymbolTable с JavaUniverseForce с ReflectSetup с SymbolTable
Конструкторы экземпляров
новый JavaUniverse()
Члены типов
трайт AnnotationApi extends AnyRef
API экземпляров Annotation. Основным источником информации об аннотациях является страница scala.reflect.api.Annotations.
- Определения классов
- Annotations
абстрактный класс AnnotationExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с шаблоном синтаксиса Annotation(tpe, scalaArgs, javaArgs). Здесь, tpe — тип аннотации, scalaArgs — полезная нагрузка аннотаций Scala, а javaArgs — полезная нагрузка аннотаций Java.
- Определения классов
- Annotations
абстрактный класс ConstantApi extends AnyRef
абстрактный класс ConstantExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с шаблоном синтаксиса Constant(value), где value — значение константы Scala.
- Определения классов
- Constants
трайт Expr[+T] extends Equals with Serializable
Expr оборачивает абстрактное синтаксическое дерево и маркирует его типом. Основным источником информации об exprs является страница scala.reflect.api.Exprs.
- Определения классов
- Exprs
трайт FlagOps extends Any
API экземпляров FlagSet. Основным источником информации о наборах флагов является страница scala.reflect.api.FlagSets.
- Определения классов
- FlagSets
трайт FlagValues extends AnyRef
Все возможные значения, которые могут образовывать наборы флагов. Основным источником информации о наборах флагов является страница scala.reflect.api.FlagSets.
- Определения классов
- FlagSets
трайт FreeTermSymbolApi extends Universe.TermSymbolApi
API свободных символов терминов. Основным источником информации о символах является страница Symbols.
$SYMACCESSORS
- Определения классов
- Internals
трайт FreeTypeSymbolApi extends Universe.TypeSymbolApi
API свободных символов типов. Основным источником информации о символах является страница Symbols.
$SYMACCESSORS
- Определения классов
- Internals
трайт Importer extends AnyRef
Этот трейт предоставляет поддержку импортеров, механизм миграции артефактов рефлексии между вселенными. Примечание: этот трейт обычно следует использовать только в редких случаях.
Артефакты рефлексии, такие как Символы и Типы, содержатся во вселенных Вселенная. Обычно вся обработка происходит в пределах одной Universe (например, макрос на стадии компиляции Universe или рефлексия во время выполнения Universe), но иногда требуется миграция артефактов из одной Universe в другую. Например, компиляция во время выполнения работает путем импорта деревьев рефлексии во время выполнения в вселенную компилятора во время выполнения, компиляции импортируемых элементов и экспорта результата обратно.
Артефакты рефлексии прочно связаны со своими Universe, что отражается в том, что типы артефактов из разных вселенных несовместимы. Однако с помощью Importer их можно импортировать из одной вселенной в другую. Например, чтобы импортировать foo.bar.Baz из исходной Universe во вселенную назначения Universe, импортер сначала проверит, существует ли весь путь владельца во вселенной назначения Universe. Если да, то ничего больше не будет сделано. В противном случае импортер воссоздаст весь путь владельца и импортирует соответствующие сигнатуры типов во вселенную назначения Universe.
Поскольку импортеры сопоставляют Symbol таблицы исходной и целевой Universe с использованием простых строковых имен, программист несет ответственность за то, чтобы убедиться, что импорт не искажает семантику, например, что foo.bar.Baz в исходной Universe означает то же, что и foo.bar.Baz в целевой Universe.
Пример
Вот как можно реализовать макрос, который выполняет вычисление аргумента на этапе компиляции, используя компилятор во время выполнения для компиляции и оценки дерева, принадлежащего компилятору на этапе компиляции:
def staticEval[T](x: T) = macro staticEval[T]
def staticEval[T](c: scala.reflect.macros.blackbox.Context)(x: c.Expr[T]) = {
// creates a runtime reflection universe to host runtime compilation
import scala.reflect.runtime.{universe => ru}
val mirror = ru.runtimeMirror(c.libraryClassLoader)
import scala.tools.reflect.ToolBox
val toolBox = mirror.mkToolBox()
// runtime reflection universe and compile-time macro universe are different
// therefore an importer is needed to bridge them
// currently mkImporter requires a cast to correctly assign the path-dependent types
val importer0 = ru.internal.mkImporter(c.universe)
val importer = importer0.asInstanceOf[ru.internal.Importer { val from: c.universe.type }]
// the created importer is used to turn a compiler tree into a runtime compiler tree
// both compilers use the same classpath, so semantics remains intact
val imported = importer.importTree(tree)
// after the tree is imported, it can be evaluated as usual
val tree = toolBox.untypecheck(imported.duplicate)
val valueOfX = toolBox.eval(imported).asInstanceOf[T]
...
}
- Определяющие классы
- Internals
трейт InternalApi extends AnyRef
API рефлексии демонстрирует напряжённость, присущую экспериментальным вещам: с одной стороны, мы хотим, чтобы она превратилась в красивый и надёжный API, а с другой — мы должны иметь дело с незрелостью лежащих в основе механизмов, предоставляя не очень привлекательные решения для обеспечения важных вариантов использования.
В Scala 2.10, что был нашей первой попыткой создания API рефлексии, у нас не было систематического подхода к решению этой проблемы, иногда делая слишком многое доступным (например, Symbol.deSkolemize) и иногда слишком мало (например, до сих пор нет возможности изменять владельцев, выполнять преобразования типов и т. д.). Это привело к определённой путанице, когда некоторые внутренние API живут среди общедоступных, пугая новичков, а некоторые внутренние API доступны только через приведение типов, что требует глубокого знания компилятора и нарушает гарантии совместимости.
Это привело к созданию модуля API internal для API рефлексии, который предоставляет расширенные API, необходимые для макросов, которые выходят за рамки современного состояния, чётко отделяя их от более или менее прямолинейного остального функционала и предоставляя гарантии совместимости, сопоставимые с остальной частью API рефлексии (полная совместимость в рамках незначительных релизов, наилучшие усилия по обеспечению обратной совместимости в рамках крупных релизов, чёткий путь замены в случае редких несовместимых изменений в крупных релизах).
Сам модуль internal (значение, которое реализует InternalApi) не определён здесь, в scala.reflect.api.Universe, но предоставляется в зависимости от реализации. Конечная точка API во время выполнения (scala.reflect.runtime.universe) предоставляет universe.compat: InternalApi, в то время как конечные точки API на стадии компиляции (экземпляры scala.reflect.macros.Context) предоставляют c.compat: ContextInternalApi, которое расширяет InternalApi дополнительными функциями, специфичными для вселенной и контекста.
- Определяющие классы
- Internals
трейт ReferenceToBoxedApi extends Universe.TermTreeApi
API, который поддерживают все ссылки
- Определяющие классы
- Internals
абстрактный класс ReferenceToBoxedExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом ReferenceToBoxed(ident). Этот узел AST не имеет прямого соответствия коду Scala и генерируется макросами для прямого обращения к переменным захвата без прохождения через elem.
Например:
var x = ... fun { x }
Сгенерирует:
Ident(x)
Что преобразуется в:
Select(Ident(x), "elem")
Если ReferenceToBoxed использовался вместо Ident, никакого преобразования не было бы выполнено.
- Определяющие классы
- Internals
трейт ReificationSupportApi extends AnyRef
Это внутренний класс реализации.
- Определяющие классы
- Internals
трейт Liftable[T] extends AnyRef
Класс типа, определяющий представление T в виде Tree.
- Определяющие классы
- Liftables
- См. также
http://docs.scala-lang.org/overviews/quasiquotes/lifting.html
трейт Unliftable[T] extends AnyRef
Класс типа, определяющий способ извлечения экземпляра T из Tree.
- Определяющие классы
- Liftables
- См. также
http://docs.scala-lang.org/overviews/quasiquotes/unlifting.html
трейт ClassMirror extends Universe.TemplateMirror
Зеркало, отражающее части экземпляра класса во время выполнения. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait FieldMirror extends AnyRef
Зеркало, отражающее поле. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait InstanceMirror extends AnyRef
Зеркало, отражающее значение во время выполнения. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait MethodMirror extends AnyRef
Зеркало, отражающее метод. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait ModuleMirror extends Universe.TemplateMirror
Зеркало, отражающее определение объекта Scala или статические части класса во время выполнения. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait ReflectiveMirror extends api.Mirror[Mirrors.this.type]
Зеркало, отражающее экземпляры и статические классы. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait RuntimeClassApi extends AnyRef
Не имеет специальных методов. Присутствует для предоставления удалённой идентичности для RuntimeClass.
- Definition Classes
- Mirrors
trait RuntimeMirror extends api.Mirror[Mirrors.this.type] with Universe.ReflectiveMirror
API зеркала для рефлексивного универсума. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
trait TemplateMirror extends AnyRef
Зеркало, отражающее экземпляр или статические части класса во время выполнения. Смотрите страницу обзора для получения подробной информации о том, как использовать рефлексию во время выполнения.
- Definition Classes
- Mirrors
abstract class NameApi extends AnyRef
API экземпляров Name.
- Definition Classes
- Names
trait TermNameApi extends AnyRef
Не имеет специальных методов. Присутствует для предоставления удалённой идентичности для TermName.
- Definition Classes
- Names
abstract class TermNameExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с шаблоном синтаксиса TermName(s).
- Definition Classes
- Names
trait TypeNameApi extends AnyRef
Не имеет специальных методов. Присутствует для предоставления удалённой идентичности для TypeName.
- Definition Classes
- Names
abstract class TypeNameExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с шаблоном синтаксиса TypeName(s).
- Определяющие классы
- Имена
case class BooleanFlag(value: Option[Boolean]) extends Product with Serializable
- Определяющие классы
- Печаталки
implicit class Quasiquote extends AnyRef
Неявный класс, вводящий q, tq, cq, pq и fq строковые интерполяторы, также известные как квазицитаты. С их помощью можно легко манипулировать AST-деревьями Scala Reflection.
- Определяющие классы
- Квазицитаты
- См. также
trait MemberScopeApi extends Universe.ScopeApi
API, поддерживаемый всеми областями членов.
- Определяющие классы
- Области
trait ScopeApi extends Iterable[Universe.Symbol]
API, поддерживаемый всеми областями.
- Определяющие классы
- Области
trait DefinitionsApi extends Universe.StandardTypes
Определяет стандартные символы (и типы через его базовый интерфейс).
- Определяющие классы
- Стандартные определения
trait StandardTypes extends AnyRef
Определяет стандартные типы.
- Определяющие классы
- Стандартные определения
trait StandardLiftableInstances extends AnyRef
- Определяющие классы
- Стандартные подъемники
trait StandardUnliftableInstances extends AnyRef
- Определяющие классы
- Стандартные подъемники
trait NamesApi extends AnyRef
Определяет стандартные имена, общие для имен терминов и типов: к ним можно получить доступ через члены nme и tpnme.
- Определяющие классы
- Стандартные имена
trait TermNamesApi extends Universe.NamesApi
Определяет стандартные имена терминов, к которым можно получить доступ через член nme.
- Определяющие классы
- Стандартные имена
trait TypeNamesApi extends Universe.NamesApi
Определяет стандартные имена типов, к которым можно получить доступ через член tpnme.
- Определяющие классы
- Стандартные имена
trait ClassSymbolApi extends Universe.TypeSymbolApi
API символов класса. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait MethodSymbolApi extends Universe.TermSymbolApi
API символов методов. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait ModuleSymbolApi extends Universe.TermSymbolApi
API символов модулей. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait SymbolApi extends AnyRef
API символов. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait TermSymbolApi extends Universe.SymbolApi
API символов терминов. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait TypeSymbolApi extends Universe.SymbolApi
API символов типов. Основной источник информации о символах — страница Symbols.
Класс Symbol определяет isXXX тестовых методов, таких как isPublic или isFinal, params и returnType методы для символов методов, baseClasses для символов классов и так далее. Некоторые из этих методов не имеют смысла для определенных подклассов Symbol и возвращают NoSymbol, Nil или другие пустые значения.
- Определяющие классы
- Symbols
trait AlternativeApi extends Universe.TermTreeApi
API, поддерживаемый всеми альтернативами
- Определяющие классы
- Trees
abstract class AlternativeExtractor extends AnyRef
Класс экстрактора для создания и сопоставления с образцом с помощью синтаксиса Alternative(trees). Этот узел AST соответствует следующему коду Scala:
pat1 | ... | patn
- Определяющие классы
- Trees
trait AnnotatedApi extends Universe.TreeApi
API, поддерживаемый всеми аннотированными
- Определяющие классы
- Trees
abstract class AnnotatedExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом Annotated(annot, arg). Этот узел AST соответствует следующему коду Scala:
arg @annot // для типов arg: @annot // для выражений
- Definition Classes
- Trees
trait AppliedTypeTreeApi extends Universe.TypTreeApi
API, поддерживаемый всеми примененными типами деревьев
- Definition Classes
- Trees
abstract class AppliedTypeTreeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом AppliedTypeTree(tpt, args). Этот узел AST соответствует следующему коду Scala:
tpt[args]
Следует использовать только с узлами tpt, которые являются типами, т.е. которые имеют isType, возвращающий true. В противном случае следует использовать TypeApply.
List[Int] как в val x: List[Int] = ??? // представлено как AppliedTypeTree(Ident(<List>), List(TypeTree(<Int>)))
def foo[T] = ??? foo[Int] // представлено как TypeApply(Ident(<foo>), List(TypeTree(<Int>)))
- Definition Classes
- Trees
trait ApplyApi extends Universe.GenericApplyApi
API, поддерживаемый всеми применениями
- Definition Classes
- Trees
abstract class ApplyExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом Apply(fun, args). Этот узел AST соответствует следующему коду Scala:
fun(args)
Например:
fun[targs](args)
Выражается как:
Apply(TypeApply(fun, targs), args)
- Definition Classes
- Trees
trait AssignApi extends Universe.TermTreeApi
API, поддерживаемый всеми присваиваниями
- Definition Classes
- Trees
abstract class AssignExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом Assign(lhs, rhs). Этот узел AST соответствует следующему коду Scala:
lhs = rhs
- Definition Classes
- Trees
trait BindApi extends Universe.DefTreeApi
API, поддерживаемый всеми связываниями
- Definition Classes
- Trees
abstract class BindExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом Bind(name, body). Этот узел AST соответствует следующему коду Scala:
pat*
- Definition Classes
- Trees
trait BlockApi extends Universe.TermTreeApi
API, поддерживаемый всеми блоками
- Definition Classes
- Trees
abstract class BlockExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом Block(stats, expr). Этот узел AST соответствует следующему коду Scala:
{ stats; expr }
Если блок пуст, expr устанавливается в Literal(Constant(())).
- Definition Classes
- Trees
trait CaseDefApi extends Universe.TreeApi
API, поддерживаемый всеми определениями case
- Definition Classes
- Trees
abstract class CaseDefExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с синтаксисом CaseDef(pat, guard, body). Этот узел AST соответствует следующему коду Scala:
case pat if guard => body
Если guard отсутствует, guard устанавливается в EmptyTree. Если body не указан, body устанавливается в Literal(Constant(()))
- Definition Classes
- Trees
trait ClassDefApi extends Universe.ImplDefApi
API, поддерживаемый всеми определениями классов
- Definition Classes
- Trees
abstract class ClassDefExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с использованием синтаксиса ClassDef(mods, name, tparams, impl). Этот узел AST соответствует следующему коду Scala:
mods class name [tparams] impl
Где impl обозначает:
extends parents { defs }
- Definition Classes
- Trees
trait CompoundTypeTreeApi extends Universe.TypTreeApi
API, поддерживаемый всеми деревьями составных типов
- Definition Classes
- Trees
abstract class CompoundTypeTreeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с использованием синтаксиса CompoundTypeTree(templ). Этот узел AST соответствует следующему коду Scala:
parent1 with ... with parentN { refinement }
- Definition Classes
- Trees
trait DefDefApi extends Universe.ValOrDefDefApi
API, поддерживаемый всеми определениями def
- Definition Classes
- Trees
abstract class DefDefExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с использованием синтаксиса DefDef(mods, name, tparams, vparamss, tpt, rhs). Этот узел AST соответствует следующему коду Scala:
mods def name[tparams](vparams_1)...(vparams_n): tpt = rhs
Если тип возвращаемого значения не указан явно (т.е. предполагается, что он будет выведен), это выражается установкой tpt в TypeTree() (но не в EmptyTree!).
- Definition Classes
- Trees
trait DefTreeApi extends Universe.SymTreeApi with Universe.NameTreeApi
API, поддерживаемый всеми деревьями def
- Definition Classes
- Trees
trait ExistentialTypeTreeApi extends Universe.TypTreeApi
API, поддерживаемый всеми деревьями экзистенциальных типов
- Definition Classes
- Trees
abstract class ExistentialTypeTreeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с использованием синтаксиса ExistentialTypeTree(tpt, whereClauses). Этот узел AST соответствует следующему коду Scala:
tpt forSome { whereClauses }
- Definition Classes
- Trees
trait FunctionApi extends Universe.TermTreeApi with Universe.SymTreeApi
API, поддерживаемый всеми функциями
- Definition Classes
- Trees
abstract class FunctionExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с использованием синтаксиса Function(vparams, body). Этот узел AST соответствует следующему коду Scala:
vparams => body
Символ функции является синтетическим TermSymbol. Он является владельцем параметров функции.
- Definition Classes
- Trees
trait GenericApplyApi extends Universe.TermTreeApi
API, поддерживаемый всеми применениями
- Definition Classes
- Trees
trait IdentApi extends Universe.RefTreeApi
API, который поддерживают все идентификаторы
- Определяющие классы
- Trees
abstract class IdentExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса Ident(qual, name). Этот узел AST соответствует следующему коду Scala:
name
Проверка типов преобразует идентификаторы, которые ссылаются на поля или методы, содержащиеся в них, в селекторы. Например, name ==> this.name
- Определяющие классы
- Trees
trait IfApi extends Universe.TermTreeApi
API, который поддерживают все операторы if
- Определяющие классы
- Trees
abstract class IfExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса If(cond, thenp, elsep). Этот узел AST соответствует следующему коду Scala:
if (cond) thenp else elsep
Если альтернатива отсутствует, elsep устанавливается в Literal(Constant(())).
- Определяющие классы
- Trees
trait ImplDefApi extends Universe.MemberDefApi
API, который поддерживают все определения impl
- Определяющие классы
- Trees
trait ImportApi extends Universe.SymTreeApi
API, который поддерживают все операторы import
- Определяющие классы
- Trees
abstract class ImportExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса Import(expr, selectors). Этот узел AST соответствует следующему коду Scala:
import expr.{selectors}
Селекторы представляют собой список ImportSelectors, которые концептуально являются парами имен (from, to). Последнее (и, возможно, единственное) имя может быть nme.WILDCARD. Например:
import qual.{w => _, x, y => z, _}
Будет представлено как:
Import(qual, List(("w", WILDCARD), ("x", "x"), ("y", "z"), (WILDCARD, null)))
Символ Import — это символ импорта @see Symbol.newImport. Он используется в основном в качестве маркера для проверки того, что импорт прошел проверку типов.
- Определяющие классы
- Trees
trait ImportSelectorApi extends AnyRef
API, который поддерживают все селекторы импорта
- Определяющие классы
- Trees
abstract class ImportSelectorExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса ImportSelector(name, namePos, rename, renamePos). Это не узел AST, он используется как часть узла Import.
- Определяющие классы
- Trees
trait LabelDefApi extends Universe.DefTreeApi with Universe.TermTreeApi
API, который поддерживают все определения label
- Определяющие классы
- Trees
abstract class LabelDefExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса LabelDef(name, params, rhs).
Этот узел AST не имеет прямого соответствия коду Scala. Он используется для рекурсивных вызовов и подобного. Например, while/do преобразуются в определения label следующим образом:
while (cond) body ==> LabelDef($L, List(), if (cond) { body; L$() } else ())
do body while (cond) ==> LabelDef($L, List(), body; if (cond) L$() else ())
- Определяющие классы
- Trees
trait LiteralApi extends Universe.TermTreeApi
API, который поддерживают все литералы
- Определяющие классы
- Trees
abstract class LiteralExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса Literal(value). Этот узел AST соответствует следующему коду Scala:
value
- Определяющие классы
- Trees
trait MatchApi extends Universe.TermTreeApi
API, поддерживаемый всеми сопоставлениями
- Definition Classes
- Trees
abstract class MatchExtractor extends AnyRef
Класс извлекателя для создания и сопоставления шаблонов с синтаксисом Match(selector, cases). Этот узел AST соответствует следующему коду Scala:
selector match { cases }
Match также используется в присваиваниях сопоставления шаблонов, таких как val (foo, bar) = baz.
- Definition Classes
- Trees
trait MemberDefApi extends Universe.DefTreeApi
API, поддерживаемый всеми определениями членов
- Definition Classes
- Trees
abstract class ModifiersApi extends AnyRef
API, поддерживаемый всеми модификаторами
- Definition Classes
- Trees
abstract class ModifiersExtractor extends AnyRef
Класс извлекателя для создания и сопоставления шаблонов с синтаксисом Modifiers(flags, privateWithin, annotations). Модификаторы инкапсулируют флаги, аннотации видимости и аннотации Scala для определений членов.
- Definition Classes
- Trees
trait ModuleDefApi extends Universe.ImplDefApi
API, поддерживаемый всеми определениями модулей
- Definition Classes
- Trees
abstract class ModuleDefExtractor extends AnyRef
Класс извлекателя для создания и сопоставления шаблонов с синтаксисом ModuleDef(mods, name, impl). Этот узел AST соответствует следующему коду Scala:
mods object name impl
Где impl обозначает:
extends parents { defs }
- Definition Classes
- Trees
trait NameTreeApi extends Universe.TreeApi
API, поддерживаемый всеми деревьями имен
- Definition Classes
- Trees
trait NamedArgApi extends Universe.TermTreeApi
API, поддерживаемый всеми присваиваниями
- Definition Classes
- Trees
abstract class NamedArgExtractor extends AnyRef
Класс извлекателя для создания и сопоставления шаблонов с синтаксисом NamedArg(lhs, rhs). Этот узел AST соответствует следующему коду Scala:
m.f(lhs = rhs)
@annotation(lhs = rhs)
- Definition Classes
- Trees
trait NewApi extends Universe.TermTreeApi
API, поддерживаемый всеми операторами new
- Definition Classes
- Trees
abstract class NewExtractor extends AnyRef
Класс извлекателя для создания и сопоставления шаблонов с синтаксисом New(tpt). Этот узел AST соответствует следующему коду Scala:
new T
Этот узел всегда встречается в следующем контексте:
(new tpt).<init>[targs](args)
Например, представление AST для:
new Example[Int](2)(3)
является следующим кодом:
Apply( Apply( TypeApply( Select(New(TypeTree(typeOf[Example])), nme.CONSTRUCTOR) TypeTree(typeOf[Int])), List(Literal(Constant(2)))), List(Literal(Constant(3))))
- Definition Classes
- Trees
trait PackageDefApi extends Universe.MemberDefApi
API, поддерживаемый всеми определениями пакетов
- Definition Classes
- Trees
abstract class PackageDefExtractor extends AnyRef
An extractor class to create and pattern match with syntax PackageDef(pid, stats). This AST node corresponds to the following Scala code:
package pid { stats }
- Definition Classes
- Trees
trait RefTreeApi extends Universe.SymTreeApi with Universe.NameTreeApi
The API that all ref trees support
- Definition Classes
- Trees
abstract class RefTreeExtractor extends AnyRef
An extractor class to create and pattern match with syntax RefTree(qual, name). This AST node corresponds to either Ident, Select or SelectFromTypeTree.
- Definition Classes
- Trees
trait ReturnApi extends Universe.TermTreeApi
The API that all returns support
- Definition Classes
- Trees
abstract class ReturnExtractor extends AnyRef
An extractor class to create and pattern match with syntax Return(expr). This AST node corresponds to the following Scala code:
return expr
The symbol of a Return node is the enclosing method.
- Definition Classes
- Trees
trait SelectApi extends Universe.RefTreeApi
The API that all selects support
- Definition Classes
- Trees
abstract class SelectExtractor extends AnyRef
An extractor class to create and pattern match with syntax Select(qual, name). This AST node corresponds to the following Scala code:
qualifier.selector
Should only be used with qualifier nodes which are terms, i.e. which have isTerm returning true. Otherwise SelectFromTypeTree should be used instead.
foo.Bar // represented as Select(Ident(<foo>), <Bar>) Foo#Bar // represented as SelectFromTypeTree(Ident(<Foo>), <Bar>)
- Definition Classes
- Trees
trait SelectFromTypeTreeApi extends Universe.TypTreeApi with Universe.RefTreeApi
The API that all selects from type trees support
- Definition Classes
- Trees
abstract class SelectFromTypeTreeExtractor extends AnyRef
An extractor class to create and pattern match with syntax SelectFromTypeTree(qualifier, name). This AST node corresponds to the following Scala code:
qualifier # selector
Note: a path-dependent type p.T is expressed as p.type # T
Should only be used with qualifier nodes which are types, i.e. which have isType returning true. Otherwise Select should be used instead.
Foo#Bar // represented as SelectFromTypeTree(Ident(<Foo>), <Bar>) foo.Bar // represented as Select(Ident(<foo>), <Bar>)
- Definition Classes
- Trees
trait SingletonTypeTreeApi extends Universe.TypTreeApi
The API that all singleton type trees support
- Definition Classes
- Trees
abstract class SingletonTypeTreeExtractor extends AnyRef
An extractor class to create and pattern match with syntax SingletonTypeTree(ref). This AST node corresponds to the following Scala code:
ref.type
- Definition Classes
- Trees
trait StarApi extends Universe.TermTreeApi
The API that all stars support
- Definition Classes
- Trees
abstract class StarExtractor extends AnyRef
Класс экстрактора для создания и сопоставления шаблонов с синтаксисом Star(elem). Этот узел AST соответствует следующему коду Scala:
pat*
- Definition Classes
- Trees
trait SuperApi extends Universe.TermTreeApi
API, поддерживаемый всеми суперклассами
- Definition Classes
- Trees
abstract class SuperExtractor extends AnyRef
Класс экстрактора для создания и сопоставления шаблонов с синтаксисом Super(qual, mix). Этот узел AST соответствует следующему коду Scala:
C.super[M]
Который представлен как:
Super(This(C), M)
Если mix пуст, это tpnme.EMPTY.
Символ Super — это класс, _из_ которого сделан супервызов. Например, в C.super(...), это будет C.
- Definition Classes
- Trees
trait SymTreeApi extends Universe.TreeApi
API, поддерживаемый всеми символьными деревьями
- Definition Classes
- Trees
trait TemplateApi extends Universe.SymTreeApi
API, поддерживаемый всеми шаблонами
- Definition Classes
- Trees
abstract class TemplateExtractor extends AnyRef
Класс экстрактора для создания и сопоставления шаблонов с синтаксисом Template(parents, self, body). Этот узел AST соответствует следующему коду Scala:
extends parents { self => body }
В случае отсутствия аннотации типа self он представляется как пустое определение значения с nme.WILDCARD в качестве имени и NoType в качестве типа.
Символ шаблона является локальным фиктивным. @see Symbol.newLocalDummy Владельцем фиктивного символа является окружающий трейт или класс. Локальный фиктивный символ сам является владельцем любых локальных блоков. Например:
class C { def foo { // владелец — C def bar // владелец — локальный фиктивный символ } }
- Definition Classes
- Trees
trait TermTreeApi extends Universe.TreeApi
API, поддерживаемый всеми термальными деревьями
- Definition Classes
- Trees
trait ThisApi extends Universe.TermTreeApi with Universe.SymTreeApi
API, поддерживаемый всеми this
- Definition Classes
- Trees
abstract class ThisExtractor extends AnyRef
Класс экстрактора для создания и сопоставления шаблонов с синтаксисом This(qual). Этот узел AST соответствует следующему коду Scala:
qual.this
Символ This — это класс, на который ссылается this. Например, в C.this это будет C.
- Definition Classes
- Trees
trait ThrowApi extends Universe.TermTreeApi
API, поддерживаемый всеми операторами throw
- Definition Classes
- Trees
abstract class ThrowExtractor extends AnyRef
Класс экстрактора для создания и сопоставления шаблонов с синтаксисом Throw(expr). Этот узел AST соответствует следующему коду Scala:
throw expr
- Definition Classes
- Trees
abstract class Transformer extends AnyRef
Класс, реализующий стратегию преобразования дерева по умолчанию: клонирование покомпонентно в ширину.
- Definition Classes
- Trees
class Traverser extends AnyRef
Класс, реализующий стратегию обхода дерева по умолчанию: покомпонентно в ширину.
- Definition Classes
- Trees
trait TreeApi extends Product
API, который поддерживают все деревья. Основной источник информации о деревьях — страница scala.reflect.api.Trees.
- Definition Classes
- Trees
abstract class TreeCopierOps extends AnyRef
API копировщика деревьев.
- Definition Classes
- Trees
trait TryApi extends Universe.TermTreeApi
API, который поддерживают все попытки
- Definition Classes
- Trees
abstract class TryExtractor extends AnyRef
Класс экстрактора для создания и сопоставления с образцом с помощью синтаксиса Try(block, catches, finalizer). Этот узел AST соответствует следующему коду Scala:
try block catch { catches } finally finalizer
Если финализатор отсутствует, finalizer устанавливается в EmptyTree.
- Definition Classes
- Trees
trait TypTreeApi extends Universe.TreeApi
API, который поддерживают все деревья типов
- Definition Classes
- Trees
trait TypeApplyApi extends Universe.GenericApplyApi
API, который поддерживают все применения типов
- Definition Classes
- Trees
abstract class TypeApplyExtractor extends AnyRef
Класс экстрактора для создания и сопоставления с образцом с помощью синтаксиса TypeApply(fun, args). Этот узел AST соответствует следующему коду Scala:
fun[args]
Следует использовать только с узлами fun, которые являются терминами, то есть возвращают isTerm. В противном случае следует использовать AppliedTypeTree.
def foo[T] = ??? foo[Int] // представлено как TypeApply(Ident(<foo>), List(TypeTree(<Int>)))
List[Int] как в val x: List[Int] = ??? // представлено как AppliedTypeTree(Ident(<List>), List(TypeTree(<Int>)))
- Definition Classes
- Trees
trait TypeBoundsTreeApi extends Universe.TypTreeApi
API, который поддерживают все деревья границ типов
- Definition Classes
- Trees
abstract class TypeBoundsTreeExtractor extends AnyRef
Класс экстрактора для создания и сопоставления с образцом с помощью синтаксиса TypeBoundsTree(lo, hi). Этот узел AST соответствует следующему коду Scala:
>: lo <: hi
- Definition Classes
- Trees
trait TypeDefApi extends Universe.MemberDefApi
API, который поддерживают все определения типов
- Definition Classes
- Trees
abstract class TypeDefExtractor extends AnyRef
Класс экстрактора для создания и сопоставления с образцом с помощью синтаксиса TypeDef(mods, name, tparams, rhs). Этот узел AST соответствует следующему коду Scala:
mods type name[tparams] = rhs
mods type name[tparams] >: lo <: hi
Первое использование иллюстрирует TypeDefs, представляющие псевдонимы типов и параметры типов. Второе использование иллюстрирует TypeDefs, представляющие абстрактные типы, где lo и hi являются одновременно TypeBoundsTrees, а Modifier.deferred устанавливается в mods.
- Definition Classes
- Trees
trait TypeTreeApi extends Universe.TypTreeApi
API, который поддерживают все деревья типов
- Definition Classes
- Trees
abstract class TypeTreeExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом TypeTree(). Этот узел AST не имеет прямого соответствия коду Scala и выводится везде, когда нам нужно обернуть Type в Tree.
- Definition Classes
- Trees
trait TypedApi extends Universe.TermTreeApi
API, поддерживаемый всеми typeds
- Definition Classes
- Trees
abstract class TypedExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом Typed(expr, tpt). Этот узел AST соответствует следующему коду Scala:
expr: tpt
- Definition Classes
- Trees
trait UnApplyApi extends Universe.TermTreeApi
API, поддерживаемый всеми unapplies
- Definition Classes
- Trees
abstract class UnApplyExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом UnApply(fun, args). Этот узел AST не имеет прямого соответствия коду Scala и вводится при проверке типов совпадений шаблонов и try блоков.
- Definition Classes
- Trees
trait ValDefApi extends Universe.ValOrDefDefApi
API, поддерживаемый всеми val defs
- Definition Classes
- Trees
abstract class ValDefExtractor extends AnyRef
Класс-экстрактор для создания и сопоставления с образцом с синтаксисом ValDef(mods, name, tpt, rhs). Этот узел AST соответствует любому из следующих кодов Scala:
mods val name: tpt = rhs
mods var name: tpt = rhs
mods name: tpt = rhs // в сигнатурах определений функций и методов
self: Bar => // типы-принадлежности
Если тип значения не указан явно (т.е. должен быть выведен), это выражается наличием tpt, установленным в TypeTree() (но не в EmptyTree!).
- Definition Classes
- Trees
trait ValOrDefDefApi extends Universe.MemberDefApi
API, поддерживаемый всеми val defs и def defs
- Definition Classes
- Trees
trait TypeTag[T] extends Universe.WeakTypeTag[T] with Equals with Serializable
TypeTag — это scala.reflect.api.TypeTags#WeakTypeTag с дополнительной гарантией, что все ссылки на типы являются конкретными, т.е. оно не содержит никаких ссылок на неразрешенные параметры типов или абстрактные типы.
- Definition Classes
- TypeTags
- Annotations
- @implicitNotFound("No TypeTag available for ${T}")
- See also
trait WeakTypeTag[T] extends Equals with Serializable
Если требуется неявное значение типа WeakTypeTag[T], компилятор создаст его, и рефлексивное представление T можно получить через поле tpe. Компоненты T могут ссылаться на параметры типов или абстрактные типы. Обратите внимание, что WeakTypeTag делает все возможное, чтобы быть максимально конкретным, то есть, если TypeTag доступны для ссылочных аргументов типа или абстрактных типов, они используются для встраивания конкретных типов в WeakTypeTag. В противном случае WeakTypeTag будет содержать ссылку на абстрактный тип. Это поведение может быть полезно, когда ожидается, что T будет частично абстрактным, но требует особого внимания для обработки этого случая. Однако, если ожидается, что T будет полностью известен, используйте scala.reflect.api.TypeTags#TypeTag вместо него, что гарантирует это свойство статически.
Для получения дополнительной информации о TypeTag см. Руководство по рефлексии: TypeTags
- Definition Classes
- TypeTags
- Annotations
- @implicitNotFound("No WeakTypeTag available for ${T}")
- See also
trait AnnotatedTypeApi extends Universe.TypeApi
API, поддерживаемый всеми аннотированными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class AnnotatedTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса AnnotatedType(annotations, underlying). Здесь, annotations — это аннотации, украшающие базовый тип underlying. selfSym — это символ, представляющий сам аннотированный тип.
- Definition Classes
- Types
trait BoundedWildcardTypeApi extends Universe.TypeApi
API, поддерживаемый всеми этими типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class BoundedWildcardTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса BoundedWildcardTypeExtractor(bounds), где bounds обозначают границы типа.
- Definition Classes
- Types
trait ClassInfoTypeApi extends Universe.TypeApi
API, поддерживаемый всеми типами информации о классах. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class ClassInfoTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса ClassInfo(parents, decls, clazz). Здесь, parents — это список родительских типов класса, decls — область видимости, содержащая все объявления в классе, а clazz — символ самого класса.
- Definition Classes
- Types
trait CompoundTypeApi extends AnyRef
Не имеет специальных методов. Находится здесь для обеспечения стёртой идентичности для CompoundType.
- Definition Classes
- Types
trait ConstantTypeApi extends Universe.TypeApi
API, поддерживаемый всеми константными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class ConstantTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса ConstantType(constant). Здесь, constant — это константное значение, представленное типом.
- Definition Classes
- Types
trait ExistentialTypeApi extends Universe.TypeApi
API, поддерживаемый всеми экзистенциальными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class ExistentialTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса ExistentialType(quantified, underlying). Здесь, quantified — это переменные типа, связанные экзистенциальным типом, а underlying — это тип, который экзистенциально квантифицирован.
- Definition Classes
- Types
trait MethodTypeApi extends Universe.TypeApi
API, поддерживаемый всеми типами методов. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class MethodTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса MethodType(params, restpe) Здесь, params — это потенциально пустой список символов параметров метода, а restpe — это тип результата метода. Если метод является каррированным, restpe будет другим MethodType. Примечание: MethodType(Nil, Int) будет типом метода, определенного с пустым списком параметров.
def f(): Int
Если метод полностью без параметров, как в
def f: Int
его тип является NullaryMethodType.
- Определяющие классы
- Types
trait NullaryMethodTypeApi extends Universe.TypeApi
API, поддерживаемый всеми типами методов без параметров. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class NullaryMethodTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса NullaryMethodType(resultType). Здесь, resultType — это тип результата метода без параметров.
- Определяющие классы
- Types
trait PolyTypeApi extends Universe.TypeApi
API, поддерживаемый всеми полиморфными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class PolyTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса PolyType(typeParams, resultType). Здесь, typeParams — это параметры типа метода, а resultType — это сигнатура типа после параметров типа.
- Определяющие классы
- Types
trait RefinedTypeApi extends Universe.TypeApi
API, поддерживаемый всеми уточненными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class RefinedTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса RefinedType(parents, decls) Здесь, parents — это список родительских типов класса, а decls — это область видимости, содержащая все объявления в классе.
- Определяющие классы
- Types
trait SingleTypeApi extends Universe.TypeApi
API, поддерживаемый всеми одиночными типами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class SingleTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса SingleType(pre, sym) Здесь, pre — это префикс одиночного типа, а sym — это символ стабильного значения, на который ссылается одиночный тип.
- Определяющие классы
- Types
trait SingletonTypeApi extends AnyRef
Не имеет специальных методов. Находится здесь для обеспечения стёртой идентичности для SingletonType.
- Определяющие классы
- Types
trait SuperTypeApi extends Universe.TypeApi
API, поддерживаемый всеми супертипами. Основной источник информации о типах — страница scala.reflect.api.Types.
- Определяющие классы
- Types
abstract class SuperTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса SuperType(thistpe, supertpe)
- Definition Classes
- Types
trait ThisTypeApi extends Universe.TypeApi
API, поддерживаемый всеми типами this. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class ThisTypeExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса ThisType(sym), где sym — префикс класса типа this.
- Definition Classes
- Types
abstract class TypeApi extends AnyRef
API типов. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
trait TypeBoundsApi extends Universe.TypeApi
API, поддерживаемый всеми границами типов. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class TypeBoundsExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса TypeBound(lower, upper). Здесь lower — нижняя граница пары TypeBounds, а upper — верхняя граница.
- Definition Classes
- Types
trait TypeRefApi extends Universe.TypeApi
API, поддерживаемый всеми ссылками на типы. Основной источник информации о типах — страница scala.reflect.api.Types.
- Definition Classes
- Types
abstract class TypeRefExtractor extends AnyRef
Класс-извлекатель для создания и сопоставления с образцом с помощью синтаксиса TypeRef(pre, sym, args). Здесь pre — префикс ссылки на тип, sym — символ, на который ссылается ссылка на тип, а args — возможно пустой список аргументов типа.
- Definition Classes
- Types
trait MacroInternalApi extends InternalApi
<invalid inheritdoc annotation>
- Definition Classes
- Universe
trait TreeGen extends AnyRef
- Definition Classes
- Universe
trait AbstractTypeRef extends internal.SymbolTable.TypeRef with internal.SymbolTable.NonClassTypeRef
- Definition Classes
- Types
class AbstractTypeSymbol extends internal.SymbolTable.TypeSymbol
Допустим, у вас есть определение типа
type T <: Number
и tsym — это символ, соответствующий T. Тогда
tsym is an instance of AbstractTypeSymbol tsym.info == TypeBounds(Nothing, Number) tsym.tpe == TypeRef(NoPrefix, T, List())
- Definition Classes
- Symbols
trait AliasTypeRef extends internal.SymbolTable.TypeRef with internal.SymbolTable.NonClassTypeRef
- Definition Classes
- Types
class AliasTypeSymbol extends internal.SymbolTable.TypeSymbol
- Definition Classes
- Symbols
case class Alternative extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.AlternativeApi with Product with Serializable
- Определяющие классы
- Trees
trait Annotatable[Self] extends AnyRef
- Определяющие классы
- AnnotationInfos
case class Annotated extends internal.SymbolTable.Tree with internal.SymbolTable.AnnotatedApi with Product with Serializable
- Определяющие классы
- Trees
case class AnnotatedType extends internal.SymbolTable.Type with internal.SymbolTable.RewrappingTypeProxy with internal.SymbolTable.AnnotatedTypeApi with Product with Serializable
Тип, содержащий некоторые аннотации. Создаётся типовым проверяющим при устранении деревьев Annotated (см. typedAnnotated).
- Определяющие классы
- Types
trait AnnotationChecker extends AnyRef
Дополнительный проверяющий для аннотаций типов. Обычно регистрируются плагинами компилятора с помощью метода addAnnotationChecker.
- Определяющие классы
- AnnotationCheckers
trait AnnotationFilter extends internal.SymbolTable.TypeMap
- Определяющие классы
- TypeMaps
abstract class AnnotationInfo extends internal.SymbolTable.AnnotationApi
Типизированная информация об аннотации. Может быть прикреплена к символу или аннотированному типу.
Аннотации записываются в файл класса как Java аннотации, если atp соответствует ClassfileAnnotation (парсер файла класса добавляет этот интерфейс к любому классу Java аннотации).
Аннотации сохраняются (записываются в атрибут scala symtab в файле класса), если atp наследует от StaticAnnotation.
args хранит аргументы Scala аннотаций, представленные в виде типизированных деревьев. Обратите внимание, что эти деревья не преобразуются никакими фазами после типового проверяющего.
assocs хранит аргументы аннотаций файла класса в виде пар имя-значение.
- Определяющие классы
- AnnotationInfos
case class AntiPolyType extends internal.SymbolTable.Type with Product with Serializable
Класс, запоминающий экземпляр типа для некоторого набора перегруженных полиморфных символов. Не используется после фазы typer.
- Определяющие классы
- Types
case class AppliedTypeTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.AppliedTypeTreeApi with Product with Serializable
- Определяющие классы
- Trees
class AppliedTypeVar extends internal.SymbolTable.TypeVar
Предпосылка: params.length == typeArgs.length > 0 (выполняется структурно).
- Определяющие классы
- Types
case class Apply extends internal.SymbolTable.GenericApply with internal.SymbolTable.ApplyApi with Product with Serializable
- Определяющие классы
- Trees
case class ApplyDynamic extends internal.SymbolTable.SymTree with internal.SymbolTable.TermTree with Product with Serializable
- Определяющие классы
- Trees
class ApplyImplicitView extends internal.SymbolTable.Apply
- Определяющие классы
- Trees
class ApplyToImplicitArgs extends internal.SymbolTable.Apply
- Определяющие классы
- Trees
class ArgsTypeRef extends internal.SymbolTable.TypeRef
- Определяющие классы
- Types
case class ArrayAnnotArg extends internal.SymbolTable.ClassfileAnnotArg with Product with Serializable
Представляет массив аргументов аннотаций файла класса
- Определяющие классы
- AnnotationInfos
служебный класс ArrayValue extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with Product with Serializable
Массив выражений. Этот узел AST необходимо перевести в бэкенд. Он используется для передачи аргументов аргументам vararg. Введён фазой компиляции uncurry.
Этот узел AST не имеет прямого соответствия коду Scala и используется для передачи аргументов аргументам vararg. Например:
printf("%s%d", foo, 42)
Преобразуется после фазы компиляции uncurry в:
Apply( Ident("printf"), Literal("%s%d"), ArrayValue(<Any>, List(Ident("foo"), Literal(42))))
- Классы-определения
- Trees
класс AsSeenFromMap extends internal.SymbolTable.TypeMap with internal.SymbolTable.KeepOnlyTypeConstraints
Карта для вычисления метода asSeenFrom.
- Классы-определения
- TypeMaps
служебный класс Assign extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.AssignApi with Product with Serializable
- Классы-определения
- Trees
тракт Attachable extends AnyRef
Общий код между reflect-internal Symbol и Tree, относящийся к прикреплениям.
- Классы-определения
- StdAttachments
класс BaseTypeSeq extends AnyRef
Примечание: конструктор защищён, чтобы все пользовались фабричным методом newBaseTypeSeq. Это необходимо, поскольку при выполнении из рефлексии каждая последовательность базовых типов должна иметь SynchronizedBaseTypeSeq в качестве миксина.
- Классы-определения
- BaseTypeSeqs
служебный класс Bind extends internal.SymbolTable.DefTree with internal.SymbolTable.BindApi with Product with Serializable
- Классы-определения
- Trees
служебный класс Block extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.BlockApi with Product with Serializable
- Классы-определения
- Trees
служебный класс BoundedWildcardType extends internal.SymbolTable.ProtoType with internal.SymbolTable.BoundedWildcardTypeApi with Product with Serializable
BoundedWildcardTypes, используемые только во время вывода типов, создаются в двух местах, которые я могу найти:
-
Если ожидаемый тип выражения — это экзистенциальный тип, его скрытые символы заменяются ограниченными подстановочными знаками. 2. Когда ищется неявное преобразование, частично основанное на имени метода в типе, преобразуемом, создаётся тип HasMethodMatching: MethodType с параметрами, типизированными как BoundedWildcardTypes.
- Классы-определения
- Types
тракт CannotHaveAttrs extends internal.SymbolTable.Tree
- Классы-определения
- Trees
служебный класс CaseDef extends internal.SymbolTable.Tree with internal.SymbolTable.CaseDefApi with Product with Serializable
- Классы-определения
- Trees
класс ChangeOwnerTraverser extends internal.SymbolTable.InternalTraverser
- Классы-определения
- Trees
абстрактный класс ChildSolidDescendantsCollector extends internal.SymbolTable.Traverser
- Классы-определения
- Positions
служебный класс ClassDef extends internal.SymbolTable.ImplDef with internal.SymbolTable.ClassDefApi with Product with Serializable
- Классы-определения
- Trees
служебный класс ClassInfoType extends internal.SymbolTable.CompoundType with internal.SymbolTable.ClassInfoTypeApi with Product with Serializable
Класс, представляющий информацию о классе
- Классы-определения
- Types
класс ClassSymbol extends internal.SymbolTable.TypeSymbol with internal.SymbolTable.ClassSymbolApi
Класс для символов классов
- Классы-определения
- Symbols
класс ClassUnwrapper extends internal.SymbolTable.TypeUnwrapper
- Классы-определения
- Types
sealed abstract class ClassfileAnnotArg extends Product with internal.SymbolTable.JavaArgumentApi
Аргументы к аннотациям констант (Аннотации, определённые в Java или расширяющие ConstantAnnotation). Аргументы могут быть:
-
константамимассивами константили вложенными аннотациями classfile (только для аннотаций Java)
TODO: переименовать на ConstantAnnotationArg
- Definition Classes
- AnnotationInfos
class CodePrinter extends internal.SymbolTable.TreePrinter
- Definition Classes
- Printers
class CollectTreeTraverser[T] extends internal.SymbolTable.InternalTraverser
- Definition Classes
- Trees
class CollectTypeCollector[T] extends internal.SymbolTable.TypeCollector[List[T]]
Карта для реализации метода collect.
- Definition Classes
- TypeMaps
abstract class CommonNames extends internal.SymbolTable.NamesApi
- Definition Classes
- StdNames
class CommonOwnerMap extends internal.SymbolTable.TypeCollector[internal.SymbolTable.Symbol]
- Attributes
- protected
- Definition Classes
- CommonOwners
class CompleteAnnotationInfo extends internal.SymbolTable.AnnotationInfo
- Definition Classes
- AnnotationInfos
abstract class CompoundType extends internal.SymbolTable.Type with internal.SymbolTable.CompoundTypeApi
Базовый класс для пересечения типов и типов классов
- Definition Classes
- Types
case class CompoundTypeTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.CompoundTypeTreeApi with Product with Serializable
- Definition Classes
- Trees
case class CompoundTypeTreeOriginalAttachment extends Product with Serializable
Хранит деревья, которые приводят к уточнённому типу для использования в реификации. К сожалению, типизированный CompoundTypeTree недостаточно информативен, и реификатор не может использовать CompoundTypeTree.tpe. Поэтому нам нужен этот хак (см. Reshape.toPreTyperTypeTree для подробного объяснения).
- Definition Classes
- StdAttachments
case class Constant extends internal.SymbolTable.ConstantApi with Product with Serializable
- Definition Classes
- Constants
abstract class ConstantType extends internal.SymbolTable.SingletonType with internal.SymbolTable.ConstantTypeApi
Класс, представляющий тип константы. Тип константы — это либо выведенный тип константного значения, либо явный или выведенный тип литерала. Оба могут быть сложены в константу на уровне типа, однако типы литералов не складываются на уровне термина и не исключают эффектов.
- Definition Classes
- Types
class ContainsAnyCollector extends internal.SymbolTable.ExistsTypeRefCollector
- Definition Classes
- TypeMaps
class ContainsAnyKeyCollector extends internal.SymbolTable.ExistsTypeRefCollector
- Definition Classes
- TypeMaps
class ContainsCollector extends internal.SymbolTable.ExistsTypeRefCollector
Карта для реализации метода contains.
- Definition Classes
- TypeMaps
case class CyclicReference extends internal.SymbolTable.TypeError with Product with Serializable
Исключение для циклических ссылок на определения символов
- Definition Classes
- Symbols
case class DefDef extends internal.SymbolTable.ValOrDefDef with internal.SymbolTable.DefDefApi with Product with Serializable
- Definition Classes
- Trees
абстрактный класс DefTree extends internal.SymbolTable.SymTree with internal.SymbolTable.NameTree with internal.SymbolTable.DefTreeApi
- Определяющие классы
- Trees
класс DefaultPosAssigner extends internal.SymbolTable.InternalTraverser with internal.SymbolTable.PosAssigner
- Атрибуты
- protected
- Определяющие классы
- Positions
абстрактный класс DefinitionsClass extends internal.SymbolTable.DefinitionsApi with internal.SymbolTable.ValueClassDefinitions
- Определяющие классы
- Definitions
абстрактный случайный класс ErasedValueType extends internal.SymbolTable.UniqueType with Product with Serializable
Временный тип, представляющий стирание пользовательского типа значения. Создаётся во время фазы стирания, удаляется после стирания.
scala/bug#6385 Создание мостов стиранием учитывает сигнатуры методов exitingErasure, которые содержат ErasedValueType. Для корректного рассмотрения переопределённых и переопределяющих сигнатур как эквивалентных в run/t6385.scala критически важно, чтобы этот тип содержал стирание обернутого типа, а не неостираемый тип самого класса значения, как это делалось изначально.
- Определяющие классы
- Types
класс ErroneousAnnotation extends internal.SymbolTable.CompleteAnnotationInfo
- Определяющие классы
- AnnotationInfos
класс ErrorScope extends internal.SymbolTable.Scope
Область ошибок.
- Определяющие классы
- Scopes
класс ExistentialExtrapolation extends internal.SymbolTable.VariancedTypeMap
Используется existentialAbstraction.
- Определяющие классы
- TypeMaps
случайный класс ExistentialType extends internal.SymbolTable.Type with internal.SymbolTable.RewrappingTypeProxy with internal.SymbolTable.ExistentialTypeApi with Product with Serializable
- Определяющие классы
- Types
случайный класс ExistentialTypeTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.ExistentialTypeTreeApi with Product with Serializable
- Определяющие классы
- Trees
абстрактный класс ExistsTypeRefCollector extends internal.SymbolTable.TypeCollector[Boolean]
- Определяющие классы
- TypeMaps
класс FilterTreeTraverser extends internal.SymbolTable.InternalTraverser
- Определяющие классы
- Trees
класс FilterTypeCollector extends internal.SymbolTable.TypeCollector[List[internal.SymbolTable.Type]]
Карта для реализации метода filter.
- Определяющие классы
- TypeMaps
класс FindTreeTraverser extends internal.SymbolTable.InternalTraverser
- Определяющие классы
- Trees
класс FindTypeCollector extends internal.SymbolTable.TypeCollector[Option[internal.SymbolTable.Type]]
Карта для реализации метода filter.
- Определяющие классы
- TypeMaps
случайный класс FixedMirrorTreeCreator extends TreeCreator with Product with Serializable
- Определяющие классы
- StdCreators
случайный класс FixedMirrorTypeCreator extends TypeCreator with Product with Serializable
- Определяющие классы
- StdCreators
тракт FlagAgnosticCompleter extends internal.SymbolTable.LazyType
Маркирующий тракт, представляющий ещё не оценённый тип, который не присваивает флаги подлежащему символу.
- Определяющие классы
- Types
тракт FlagAssigningCompleter extends internal.SymbolTable.LazyType
Маркерный тракт, представляющий ещё не вычисленный тип, который присваивает флаги базовому символу.
- Классы определений
- Типы
абстрактный случайный класс FoldableConstantType extends internal.SymbolTable.ConstantType with Product with Serializable
Класс, представляющий выведенный тип константного значения. Константные типы и соответствующие им термины константно складываются во время проверки типа. Для избежания константного складывания используйте тип, возвращаемый deconst.
- Классы определений
- Типы
класс ForEachTypeTraverser extends internal.SymbolTable.TypeTraverser
- Классы определений
- TypeMaps
класс ForeachPartialTreeTraverser extends internal.SymbolTable.InternalTraverser
- Классы определений
- Деревья
класс ForeachTreeTraverser extends internal.SymbolTable.InternalTraverser
- Классы определений
- Деревья
тракт FreeSymbol extends internal.SymbolTable.Symbol
- Классы определений
- Символы
класс FreeTermSymbol extends internal.SymbolTable.TermSymbol with internal.SymbolTable.FreeSymbol with internal.SymbolTable.FreeTermSymbolApi
- Классы определений
- Символы
класс FreeTypeSymbol extends internal.SymbolTable.TypeSkolem with internal.SymbolTable.FreeSymbol with internal.SymbolTable.FreeTypeSymbolApi
- Классы определений
- Символы
класс FreshNameExtractor extends AnyRef
- Классы определений
- FreshNames
случайный класс Function extends internal.SymbolTable.SymTree with internal.SymbolTable.TermTree with internal.SymbolTable.FunctionApi with Product with Serializable
- Классы определений
- Деревья
абстрактный класс GenericApply extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.GenericApplyApi
- Классы определений
- Деревья
класс HKTypeVar extends internal.SymbolTable.TypeVar
Предварительное условие: !params.isEmpty. (args.nonEmpty принудительно применяется структурно.)
- Классы определений
- Типы
случайный класс Ident extends internal.SymbolTable.SymTree with internal.SymbolTable.RefTree with internal.SymbolTable.IdentApi with Product with Serializable
- Классы определений
- Деревья
случайный класс If extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.IfApi with Product with Serializable
- Классы определений
- Деревья
абстрактный класс ImplDef extends internal.SymbolTable.MemberDef with internal.SymbolTable.ImplDefApi
- Классы определений
- Деревья
случайный класс Import extends internal.SymbolTable.SymTree with internal.SymbolTable.ImportApi with Product with Serializable
- Классы определений
- Деревья
случайный класс ImportSelector extends internal.SymbolTable.ImportSelectorApi with Product with Serializable
- Классы определений
- Деревья
случайный класс ImportType extends internal.SymbolTable.Type with Product with Serializable
- Классы определений
- Типы
trait ImportableAttachment extends AnyRef
Прикрепление, знающее, как импортировать себя в другую вселенную.
- Definition Classes
- StdAttachments
abstract class InfoTransformer extends AnyRef
- Definition Classes
- InfoTransformers
abstract class InlineAnnotatedAttachment extends AnyRef
- Definition Classes
- StdAttachments
class InstantiateDependentMap extends internal.SymbolTable.TypeMap with internal.SymbolTable.KeepOnlyTypeConstraints
Примечание: Эта карта необходима даже для типов методов без зависимостей, несмотря на то, что это может подразумеваться из названия.
- Definition Classes
- TypeMaps
type Internal = MacroInternalApi
- Definition Classes
- Internals → Internals
- См. также
class InternalTransformer extends internal.SymbolTable.Transformer
- Definition Classes
- Trees
class InternalTraverser extends internal.SymbolTable.Traverser
- Definition Classes
- Trees
abstract class InternalTreeCopierOps extends internal.SymbolTable.TreeCopierOps
- Definition Classes
- Trees
trait JavaClassCompleter extends AnyRef
- Definition Classes
- JavaMirrors
class JavaKeywords extends AnyRef
- Definition Classes
- StdNames
class JavaMirror extends SymbolTable.Roots with SymbolTable.JavaMirror
API зеркала для рефлексивной вселенной
- Definition Classes
- JavaMirrors
trait KeepOnlyTypeConstraints extends internal.SymbolTable.TypeMap with internal.SymbolTable.AnnotationFilter
- Definition Classes
- TypeMaps
abstract class Keywords extends internal.SymbolTable.CommonNames
Этот трайт должен быть первым в линейной структуре.
- Definition Classes
- StdNames
abstract class Kind extends AnyRef
Структура данных, описывающая тип заданного типа.
Правильные типы представлены с помощью ProperTypeKind.
Конструкторы типов представлены с помощью TypeConKind.
- Definition Classes
- Kinds
case class KindErrors extends Product with Serializable
- Definition Classes
- Kinds
case class LabelDef extends internal.SymbolTable.DefTree with internal.SymbolTable.TermTree with internal.SymbolTable.LabelDefApi with Product with Serializable
- Definition Classes
- Trees
final class LazyAnnotationInfo extends internal.SymbolTable.AnnotationInfo
Символьные аннотации, распарсенные в Namer (typeCompleter определений), должны быть ленивыми (#1782)
- Definition Classes
- AnnotationInfos
class LazyPackageType extends SymbolTable.LazyType with SymbolTable.FlagAgnosticCompleter
Комплетер типа для пакетов.
- Definition Classes
- SymbolLoaders
abstract class LazyPolyType extends internal.SymbolTable.LazyType
- Definition Classes
- Types
class LazyTreeCopier extends internal.SymbolTable.InternalTreeCopierOps
- Definition Classes
- Trees
абстрактный класс LazyType extends internal.SymbolTable.Type
Класс, представляющий ещё не вычисленный тип.
- Определяющие классы
- Types
случайный класс Literal extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.LiteralApi with Product with Serializable
- Определяющие классы
- Trees
случайный класс LiteralAnnotArg extends internal.SymbolTable.ClassfileAnnotArg with Product with Serializable
Представляет константу времени компиляции (Boolean, Byte, Short, Char, Int, Long, Float, Double, String, java.lang.Class или экземпляр значения перечисления Java).
- Определяющие классы
- AnnotationInfos
абстрактный случайный класс LiteralType extends internal.SymbolTable.ConstantType with Product with Serializable
Класс, представляющий явный или выведенный тип литерала. Типы литералов могут быть свёрнуты на уровне типов во время проверки типов, однако они не будут свёрнуты на уровне терминов, и эффекты не будут исключены.
- Определяющие классы
- Types
класс LocalOwnersTraverser extends internal.SymbolTable.InternalTraverser
- Определяющие классы
- Trees
класс Locator extends internal.SymbolTable.Traverser
Локатор для деревьев с заданными позициями. Принимая заданную позицию pos, локатор.apply возвращает наименьшее дерево, которое содержит pos.
- Определяющие классы
- Positions
случайный класс LookupAmbiguous extends internal.SymbolTable.NameLookup with Product with Serializable
- Определяющие классы
- Scopes
случайный класс LookupInaccessible extends internal.SymbolTable.NameLookup with Product with Serializable
- Определяющие классы
- Scopes
случайный класс LookupSucceeded extends internal.SymbolTable.NameLookup with Product with Serializable
- Определяющие классы
- Scopes
класс MalformedType extends internal.SymbolTable.TypeError
Исключение, сигнализирующее о некорректном типе
- Определяющие классы
- Types
класс MappedBaseTypeSeq extends internal.SymbolTable.BaseTypeSeq
- Определяющие классы
- BaseTypeSeqs
случайный класс Match extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.MatchApi with Product with Serializable
- Определяющие классы
- Trees
абстрактный класс MemberDef extends internal.SymbolTable.DefTree with internal.SymbolTable.MemberDefApi
- Определяющие классы
- Trees
класс MethodSymbol extends internal.SymbolTable.TermSymbol with internal.SymbolTable.MethodSymbolApi
Класс для символов методов
- Определяющие классы
- Symbols
случайный класс MethodType extends internal.SymbolTable.Type with internal.SymbolTable.MethodTypeApi with Product with Serializable
Класс, представляющий тип метода с параметрами. Обратите внимание, что беспараметрический метод представлен типом NullaryMethodType:
def m(): Int MethodType(Nil, Int) def m: Int NullaryMethodType(Int)
- Определяющие классы
- Types
тип Mirror alias = JavaMirror
В отражающих вселенных во время выполнения зеркала являются JavaMirrors.
- Определяющие классы
- JavaMirrors → JavaUniverse → Mirrors → Mirrors
класс MissingAliasControl extends ControlThrowable
- Классы-определения
- Types
класс MissingTypeControl extends ControlThrowable
- Классы-определения
- Types
служебный класс Modifiers extends internal.SymbolTable.ModifiersApi with HasFlags with Product with Serializable
- Классы-определения
- Trees
класс ModuleClassSymbol extends internal.SymbolTable.ClassSymbol
Класс для символов классов модулей Примечание: не все классы модулей являются этого типа; при распаковке мы получаем обычные символы классов!
- Классы-определения
- Symbols
служебный класс ModuleDef extends internal.SymbolTable.ImplDef with internal.SymbolTable.ModuleDefApi with Product with Serializable
- Классы-определения
- Trees
класс ModuleSymbol extends internal.SymbolTable.TermSymbol with internal.SymbolTable.ModuleSymbolApi
Класс для символов модулей
- Классы-определения
- Symbols
класс ModuleTypeRef extends internal.SymbolTable.NoArgsTypeRef
- Классы-определения
- Types
запечатанный абстрактный класс Name extends internal.Names.NameApi with CharSequence
Класс имени. TODO — решить проблему шизофрении относительно того, следует ли рассматривать имена как строки или строки как имена. Наделить имена ключевыми функциями, отсутствие которых заставляет людей постоянно использовать строки.
- Классы-определения
- Names
запечатанный тракт NameLookup extends AnyRef
ADT для представления результатов поиска символов по имени.
- Классы-определения
- Scopes
final класс NameOps[T <: Name] extends AnyRef
FIXME: Это хороший пример того, что является чистым «классом значения», но не может извлечь выгоды, потому что указатель $outer (неиспользуемый), поэтому он не однопольный.
- Классы-определения
- Names
тракт NameTree extends internal.SymbolTable.Tree with internal.SymbolTable.NameTreeApi
- Классы-определения
- Trees
служебный класс NamedArg extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.NamedArgApi with Product with Serializable
- Классы-определения
- Trees
служебный класс NamedType extends internal.SymbolTable.Type with Product with Serializable
Класс, представляющий типы с именем. При использовании аргументов с именем типы аргументов с именем для вызова isApplicable представлены как NamedType.
- Классы-определения
- Types
служебный класс NestedAnnotArg extends internal.SymbolTable.ClassfileAnnotArg with Product with Serializable
Представляет вложенный анотацию classfile
- Классы-определения
- AnnotationInfos
служебный класс New extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.NewApi with Product with Serializable
- Классы-определения
- Trees
класс NoArgsTypeRef extends internal.SymbolTable.TypeRef
- Классы-определения
- Types
класс NoCommonType extends ControlThrowable
- Классы-определения
- Types
класс NoSymbol extends internal.SymbolTable.Symbol
Объект, представляющий отсутствующий символ
- Классы-определения
- Symbols
тракт NonClassTypeRef extends internal.SymbolTable.TypeRef
- Классы определений
- Типы
класс-объект NullaryMethodType extends internal.SymbolTable.Type with internal.SymbolTable.NullaryMethodTypeApi with Product with Serializable
- Классы определений
- Типы
final класс-объект OverloadedArgProto extends internal.SymbolTable.ProtoType with internal.SymbolTable.SimpleTypeProxy with Product with Serializable
Леньно вычисляемые ожидаемые типы для аргументов перегруженных методов. В основном для улучшения вывода типа параметров для перегруженных методов высшего порядка.
Обычно разрешение перегрузки типизирует аргументы альтернатив без ожидаемого типа. Однако, типизация литералов функций и расширение eta управляются ожидаемым типом:
-
литералы функций обычно не имеют типов параметров, которые выводятся из ожидаемого типа;расширение eta в данный момент происходит только тогда, когда ожидается тип функции/SAM.
Теперь, когда коллекции полны перегруженных методов HO, мы должны лучше стараться правильно их типизировать.
(Этот абзац концептуально верен, но не является спецификацией.) Чтобы избежать нарушения существующего кода, мы предоставляем ожидаемый тип (для каждой позиции аргумента) только когда:
-
существует как минимум один тип FunctionN, ожидаемый одной из перегрузок: в этом случае ожидаемый тип является FunctionN[Ti, ?], где Ti - типы аргументов (они должны все быть =:=), а ожидаемый тип результата опушен с помощью подстановки. Это не исключает перегрузки, которые ожидают SAM, потому что они соответствуют типу функции через преобразование SAMИЛИ: все перегрузки ожидают тип SAM одного класса, но с потенциально различными типами результатов (типы аргументов должны быть =:=)ИЛИ: все ожидаемые типы сводятся к одному типу (по =:=, опуская параметры типа метода до типов аргументов)
Мы допускаем полиморфные случаи, учитывая любое подстановку с префиксом AntiPolyType. Конструкторы полиморфных классов не поддерживаются (появления параметров типа используют новые символы, трудно связать с параметрами типа класса).
Во всех остальных случаях сохраняется старое поведение: ожидается Подстановка.
- Классы определений
- Типы
класс-объект OverloadedType extends internal.SymbolTable.Type with Product with Serializable
Класс, содержащий альтернативы и префикс типа перегруженного символа. Не используется после фазы typer.
- Классы определений
- Типы
класс PackageClassInfoType extends internal.SymbolTable.ClassInfoType
- Классы определений
- Типы
класс PackageClassSymbol extends internal.SymbolTable.ModuleClassSymbol
- Классы определений
- Символы
класс-объект PackageDef extends internal.SymbolTable.MemberDef with internal.SymbolTable.PackageDefApi with Product with Serializable
- Классы определений
- Деревья
класс PackageObjectClassSymbol extends internal.SymbolTable.ModuleClassSymbol
- Классы определений
- Символы
класс PackageScope extends SymbolTable.Scope with SymbolTable.SynchronizedScope
- Классы определений
- SymbolLoaders
класс PackageTypeRef extends internal.SymbolTable.ModuleTypeRef
- Классы определений
- Типы
класс PerRunReporting extends PerRunReportingBase
абстрактный класс PerRunReportingBase extends AnyRef
- Классы определений
- Reporting
тип Period = Int
Период — это порядковый номер фазы в запуске. Фазы в более поздних запусках имеют более высокие периоды, чем фазы в более ранних запусках. Более поздние фазы имеют более высокие периоды, чем более ранние фазы в том же запуске.
- Классы определений
- SymbolTable
трейт PlainAttachment extends internal.SymbolTable.ImportableAttachment
Присоединение, которое не содержит артефактов рефлексии и может быть импортировано как есть.
- Классы определений
- StdAttachments
класс-объект PolyType extends internal.SymbolTable.Type with internal.SymbolTable.PolyTypeApi with Product with Serializable
Функция типа или тип полиморфного значения (и, следовательно, типа *).
До появления NullaryMethodType полиморфный нульарный метод (например, def isInstanceOf[T]: Boolean) типизировался как PolyType(tps, restpe), а мономорфный как PolyType(Nil, restpe). Теперь это: PolyType(tps, NullaryMethodType(restpe)) и NullaryMethodType(restpe) по симметрии к MethodTypes: PolyType(tps, MethodType(params, restpe)) и MethodType(params, restpe)
Таким образом, PolyType(tps, TypeRef(...)) однозначно указывает на функцию типа (которая получается в результате расширения eta типа конструктора псевдонима). Аналогично, PolyType(tps, ClassInfoType(...)) - это конструктор типа.
Политип имеет тип * тогда и только тогда, когда его тип результата является типом (нульарного) метода.
- Классы определений
- Типы
трейт PosAssigner extends internal.SymbolTable.InternalTraverser
- Классы определений
- Позиции
тип Position = internal.util.Position
Определяет понятие позиций, специфичное для вселенной. Основная документация по позициям находится по адресу scala.reflect.api.Position.
- Классы-определения
- Positions → Positions
класс ProperTypeKind extends internal.SymbolTable.Kind
- Классы-определения
- Kinds
абстрактный класс ProtoType extends internal.SymbolTable.Type
- Классы-определения
- Types
класс QualTypeSymAttachment extends AnyRef
- Классы-определения
- StdAttachments
класс RawTreePrinter extends internal.SymbolTable.TreePrinter
- Классы-определения
- Printers
служебный класс RecoverableCyclicReference extends internal.SymbolTable.TypeError with Product with Serializable
Исключение для циклических ссылок, из которых можно восстановиться
- Классы-определения
- Types
тракт RefTree extends internal.SymbolTable.SymTree with internal.SymbolTable.NameTree with internal.SymbolTable.RefTreeApi
- Классы-определения
- Trees
служебный класс ReferenceToBoxed extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.ReferenceToBoxedApi with Product with Serializable
- Классы-определения
- Trees
служебный класс RefinedType extends internal.SymbolTable.CompoundType with internal.SymbolTable.RefinedTypeApi with Product with Serializable
Класс, представляющий пересечения типов с уточнениями вида <parents_0> with ... with <parents_n> { decls } Нельзя создавать напрямую; для создания всегда следует использовать refinedType.
- Классы-определения
- Types
final класс RefinedType0 extends internal.SymbolTable.RefinedType
- Классы-определения
- Types
класс RefinementClassSymbol extends internal.SymbolTable.ClassSymbol
- Классы-определения
- Symbols
класс RefinementTypeRef extends internal.SymbolTable.NoArgsTypeRef
- Классы-определения
- Types
тракт ReflectStats extends BaseTypeSeqsStats with TypesStats with SymbolTableStats with TreesStats with SymbolsStats with ScopeStats
- Классы-определения
- SymbolTable
класс ReificationSupportImpl extends internal.SymbolTable.ReificationSupportApi
- Классы-определения
- ReificationSupport
служебный класс RepeatedType extends internal.SymbolTable.Type with Product with Serializable
Как и NamedType, используется только при вызове isApplicable. Записывает, что применение имеет звёздочку дикого типа (т. е. _*) в конце.
- Классы-определения
- Types
служебный класс Return extends internal.SymbolTable.SymTree with internal.SymbolTable.TermTree with internal.SymbolTable.ReturnApi with Product with Serializable
- Классы-определения
- Trees
тракт RewrappingTypeProxy extends internal.SymbolTable.Type with internal.SymbolTable.SimpleTypeProxy
Прокси для типа (идентифицируемого по полю underlying), который перенаправляет большинство операций на него. Здесь перенаправляется каждая переопределённая операция для некоторых типов. Некоторые операции повторно перенаправляются.
- Классы-определения
- Types
тракт RootSymbol extends internal.SymbolTable.Symbol
- Классы-определения
- Mirrors
abstract class Roots extends internal.SymbolTable.RootsBase
- Definition Classes
- Mirrors
abstract class RootsBase extends api.Mirror[Mirrors.this.type]
- Definition Classes
- Mirrors
type RunId = Int
Порядковый номер запусков компилятора. Первый запуск имеет номер 1.
- Definition Classes
- SymbolTable
trait RunReporting extends AnyRef
- Definition Classes
- Reporting
type RuntimeClass = Class[_]
В средах выполнения рефлексии, runtime-представление класса — это java.lang.Class.
- Definition Classes
- JavaUniverse → Mirrors
case class SAMFunction extends internal.SymbolTable.PlainAttachment with Product with Serializable
Прикрепляется к узлу Function во время проверки типов, когда ожидаемый тип является типом SAM (а не встроенным FunctionN).
В идеале, мы бы перешли к AST замыканий Dotty, который отслеживает среду, поднятый метод, имеющий реализацию, и целевой тип. Для обратной совместимости прикрепление — лучшее, что мы можем сделать прямо сейчас.
- Definition Classes
- StdAttachments
- Since
2.12.0-M4
class Scope extends AbstractIterable[internal.SymbolTable.Symbol] with internal.SymbolTable.ScopeApi with internal.SymbolTable.MemberScopeApi
Примечание: конструктор защищён, чтобы все пользователи использовали методы создания newScope или newNestedScope. Это необходимо, потому что при выполнении рефлексии каждый scope должен иметь SynchronizedScope как миксин.
- Definition Classes
- Scopes
class ScopeEntry extends AnyRef
- Definition Classes
- Scopes
case class Select extends internal.SymbolTable.SymTree with internal.SymbolTable.RefTree with internal.SymbolTable.SelectApi with Product with Serializable
- Definition Classes
- Trees
case class SelectFromTypeTree extends internal.SymbolTable.SymTree with internal.SymbolTable.RefTree with internal.SymbolTable.TypTree with internal.SymbolTable.SelectFromTypeTreeApi with Product with Serializable
- Definition Classes
- Trees
trait SimpleTypeProxy extends internal.SymbolTable.Type
Прокси для типа (идентифицированного по полю underlying), который перенаправляет большинство операций к нему (для исключений, см. WrappingProxy, который перенаправляет еще больше операций). Каждая переопределенная операция для какого-либо типа должна быть перенаправлена.
- Definition Classes
- Types
abstract case class SingleType extends internal.SymbolTable.SingletonType with internal.SymbolTable.SingleTypeApi with Product with Serializable
Класс для одиночных типов вида <prefix>.<sym.name>.type. Не может быть создан напрямую; для создания всегда следует использовать singleType.
- Definition Classes
- Types
abstract class SingletonType extends internal.SymbolTable.SubType with internal.SymbolTable.SimpleTypeProxy with internal.SymbolTable.SingletonTypeApi
Базовый класс для типов, представляющих единственное значение (одиночные типы и типы «this»).
- Definition Classes
- Types
case class SingletonTypeTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.SingletonTypeTreeApi with Product with Serializable
- Definition Classes
- Trees
abstract class StandardImporter extends internal.SymbolTable.Importer
- Definition Classes
- Importers
case class Star extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.StarApi with Product with Serializable
- Definition Classes
- Trees
class StrictTreeCopier extends internal.SymbolTable.InternalTreeCopierOps
- Definition Classes
- Trees
class StubClassSymbol extends internal.SymbolTable.ClassSymbol with internal.SymbolTable.StubSymbol
- Definition Classes
- Symbols
trait StubSymbol extends internal.SymbolTable.Symbol
- Definition Classes
- Symbols
class StubTermSymbol extends internal.SymbolTable.TermSymbol with internal.SymbolTable.StubSymbol
- Definition Classes
- Symbols
abstract class SubType extends internal.SymbolTable.UniqueType
Базовый класс для типов, которые откладывают некоторые операции до своего непосредственного супертипа.
- Definition Classes
- Types
final case class SubTypePair extends Product with Serializable
- Definition Classes
- TypeComparers
case class SubpatternsAttachment extends Product with Serializable
Нетипизированный список подшаблонов, прикрепленных к селектору-заглушке.
- Definition Classes
- StdAttachments
abstract class SubstMap[T] extends internal.SymbolTable.TypeMap
Базовый класс для вычисления всех подстановок
- Definition Classes
- TypeMaps
class SubstSymMap extends internal.SymbolTable.SubstMap[internal.SymbolTable.Symbol]
Отображение для реализации метода substSym.
- Definition Classes
- TypeMaps
class SubstThisMap extends internal.SymbolTable.TypeMap
Отображение для реализации метода substThis.
- Definition Classes
- TypeMaps
class SubstTypeMap extends internal.SymbolTable.SubstMap[internal.SymbolTable.Type]
Отображение для реализации метода subst.
- Definition Classes
- TypeMaps
class SubstWildcardMap extends internal.SymbolTable.TypeMap
- Definition Classes
- TypeMaps
case class Super extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.SuperApi with Product with Serializable
- Definition Classes
- Trees
abstract case class SuperType extends internal.SymbolTable.SingletonType with internal.SymbolTable.SuperTypeApi with Product with Serializable
- Definition Classes
- Types
abstract class SymLoader extends internal.SymbolTable.LazyType
- Definition Classes
- SymbolTable
abstract class SymTree extends internal.SymbolTable.Tree with internal.SymbolTable.SymTreeApi
- Definition Classes
- Trees
abstract class Symbol extends internal.SymbolTable.SymbolContextApiImpl with HasFlags with internal.SymbolTable.Annotatable[internal.SymbolTable.Symbol] with internal.SymbolTable.Attachable
Класс для всех символов
- Definition Classes
- Symbols
abstract class SymbolContextApiImpl extends internal.SymbolTable.SymbolApi
- Definition Classes
- Symbols
sealed abstract class SymbolNames extends AnyRef
- Definition Classes
- StdNames
служебный класс SymbolOps extends Product с Serializable
- Определяющие классы
- Symbols
тракт SymbolTableInternal extends internal.SymbolTable.MacroInternalApi
- Определяющие классы
- Internals
тракт SynchronizedBaseTypeSeq extends SymbolTable.BaseTypeSeq
- Определяющие классы
- SynchronizedOps
тракт SynchronizedClassSymbol extends SymbolTable.ClassSymbol с SymbolTable.SynchronizedTypeSymbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedMethodSymbol extends SymbolTable.MethodSymbol с SymbolTable.SynchronizedTermSymbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedModuleClassSymbol extends SymbolTable.ModuleClassSymbol с SymbolTable.SynchronizedClassSymbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedModuleSymbol extends SymbolTable.ModuleSymbol с SymbolTable.SynchronizedTermSymbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedScope extends SymbolTable.Scope
- Определяющие классы
- SynchronizedOps
тракт SynchronizedSymbol extends SymbolTable.Symbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedTermSymbol extends SymbolTable.Symbol с SymbolTable.SynchronizedSymbol
- Определяющие классы
- SynchronizedSymbols
тракт SynchronizedTypeSymbol extends SymbolTable.TypeSymbol с SymbolTable.SynchronizedSymbol
- Определяющие классы
- SynchronizedSymbols
служебный класс Template extends internal.SymbolTable.SymTree с internal.SymbolTable.TemplateApi с Product с Serializable
- Определяющие классы
- Trees
закрытый абстрактный класс TermName extends Name с internal.Names.TermNameApi
- Определяющие классы
- Names
абстрактный класс TermNames extends internal.SymbolTable.Keywords с internal.SymbolTable.TermNamesApi
- Определяющие классы
- StdNames
класс TermSymbol extends internal.SymbolTable.Symbol с internal.SymbolTable.TermSymbolApi
Класс для символов терминов
- Определяющие классы
- Symbols
тракт TermTree extends internal.SymbolTable.Tree с internal.SymbolTable.TermTreeApi
- Определяющие классы
- Trees
служебный класс This extends internal.SymbolTable.SymTree с internal.SymbolTable.TermTree с internal.SymbolTable.ThisApi с Product с Serializable
- Определяющие классы
- Trees
класс ThisSubstituter extends internal.SymbolTable.InternalTransformer
Заменить clazz.this на to. to должен быть деревом с атрибутами.
- Определяющие классы
- Trees
абстрактный служебный класс ThisType extends internal.SymbolTable.SingletonType с internal.SymbolTable.ThisTypeApi с Product с Serializable
Класс для типов this вида <sym>.this.type
- Определяющие классы
- Types
интерфейс ThreadLocalStorage[T] extends AnyRef
- Определяющие классы
- ThreadLocalStorage
класс Throw extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.ThrowApi with Product with Serializable
- Определяющие классы
- Trees
класс TopClassCompleter extends SymbolTable.SymLoader with SymbolTable.FlagAssigningCompleter
Стандартный завершитель для классов верхнего уровня
- Определяющие классы
- SymbolLoaders
абстрактный класс Tree extends internal.SymbolTable.TreeContextApiImpl with internal.SymbolTable.Attachable with Product
- Определяющие классы
- Trees
абстрактный класс TreeContextApiImpl extends internal.SymbolTable.TreeApi
- Определяющие классы
- Trees
тип TreeCopier = InternalTreeCopierOps
Тип стандартных (ленивых) копиров деревьев.
- Определяющие классы
- JavaUniverse → Trees → Trees
класс TreePrinter extends internal.SymbolTable.TreePrinter
- Определяющие классы
- Printers
класс TreeReplacer extends internal.SymbolTable.InternalTransformer
Трансформатор, который заменяет дерево from на дерево to в заданном дереве
- Определяющие классы
- Trees
интерфейс TreeStackTraverser extends internal.SymbolTable.InternalTraverser
- Определяющие классы
- Trees
класс TreeSubstituter extends internal.SymbolTable.InternalTransformer
- Определяющие классы
- Trees
класс TreeSymSubstTraverser extends internal.SymbolTable.TypeMapTreeSubstituter
- Определяющие классы
- Trees
класс TreeSymSubstituter extends internal.SymbolTable.InternalTransformer
Заменяет символы в from на символы в to. Возвращает новое дерево, использующее новые символы, и узлы Ident и Select которого согласованы по имени с новыми символами.
Примечание: в настоящее время это деструктивная операция над исходным деревом. Деревья, которым в настоящее время присвоен символ в from, получат новые символы без копирования, а деревья, определяющие символы с info, которые ссылаются на символ в from, получат новый тип.
- Определяющие классы
- Trees
класс TreeTypeSubstituter extends internal.SymbolTable.TypeMapTreeSubstituter
- Определяющие классы
- Trees
класс Try extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.TryApi with Product with Serializable
- Определяющие классы
- Trees
класс TwoWayCache[J, S] extends AnyRef
- Определяющие классы
- TwoWayCaches
интерфейс TypTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTreeApi
- Определяющие классы
- Trees
абстрактный класс Type extends internal.SymbolTable.TypeApiImpl with internal.SymbolTable.Annotatable[internal.SymbolTable.Type]
Базовый класс для всех типов
- Определяющие классы
- Types
абстрактный класс TypeApiImpl extends internal.SymbolTable.TypeApi
- Определяющие классы
- Types
служебный класс TypeApply extends internal.SymbolTable.GenericApply with internal.SymbolTable.TypeApplyApi with Product with Serializable
- Описание классов
- Trees
абстрактный служебный класс TypeBounds extends internal.SymbolTable.SubType with internal.SymbolTable.TypeBoundsApi with Product with Serializable
Класс для границ абстрактных типов и параметров типа
- Описание классов
- Types
служебный класс TypeBoundsTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.TypeBoundsTreeApi with Product with Serializable
- Описание классов
- Trees
абстрактный класс TypeCollector[T] extends internal.SymbolTable.TypeFolder
- Описание классов
- TypeMaps
класс TypeConKind extends internal.SymbolTable.Kind
- Описание классов
- Kinds
класс TypeConstraint extends AnyRef
Класс, выражающий ограничения верхних и нижних границ переменных типа, а также их экземпляры.
- Описание классов
- TypeConstraints
служебный класс TypeDef extends internal.SymbolTable.MemberDef with internal.SymbolTable.TypeDefApi with Product with Serializable
- Описание классов
- Trees
класс TypeError extends Throwable
Исключение, сигнализирующее об ошибке типа
- Описание классов
- Types
абстрактный класс TypeFolder extends (internal.SymbolTable.Type) => Unit
- Описание классов
- TypeMaps
абстрактный класс TypeMap extends (internal.SymbolTable.Type) => internal.SymbolTable.Type
Прототип для сопоставления функции со всеми возможными типами
- Описание классов
- TypeMaps
класс TypeMapTreeSubstituter extends internal.SymbolTable.InternalTraverser
- Описание классов
- Trees
запечатанный абстрактный класс TypeName extends Name with internal.Names.TypeNameApi
- Описание классов
- Names
абстрактный класс TypeNames extends internal.SymbolTable.Keywords with internal.SymbolTable.TypeNamesApi
- Описание классов
- StdNames
служебный класс TypeParamVarargsAttachment extends Product with Serializable
Прикрепление, несущее информацию между uncurry и erasure
- Описание классов
- StdAttachments
абстрактный служебный класс TypeRef extends internal.SymbolTable.UniqueType with internal.SymbolTable.TypeRefApi with Product with Serializable
Класс для именованных типов вида <prefix>.<sym.name>[args] Не может быть создан напрямую; для создания всегда следует использовать typeRef. (@M: В противном случае хеширование нарушается)
- Описание классов
- Types
класс TypeSkolem extends internal.SymbolTable.TypeSymbol
Класс для параметров типа, рассматриваемых изнутри их областей видимости
- Описание классов
- Symbols
абстрактный класс TypeSymbol extends internal.SymbolTable.Symbol with internal.SymbolTable.TypeSymbolApi
Класс символов типа. Псевдонимы и абстрактные типы являются прямыми экземплярами этого класса. Классы являются экземплярами подкласса.
- Описание классов
- Symbols
абстрактный класс TypeTraverser extends internal.SymbolTable.TypeMap
- Описание классов
- TypeMaps
case class TypeTree extends internal.SymbolTable.Tree with internal.SymbolTable.TypTree with internal.SymbolTable.TypeTreeApi with Product with Serializable
- Definition Classes
- Trees
class TypeUnwrapper extends (internal.SymbolTable.Type) => internal.SymbolTable.Type
- Definition Classes
- Types
abstract case class TypeVar extends internal.SymbolTable.Type with Product with Serializable
A class representing a type variable: not used after phase typer.
A higher-kinded TypeVar has params (Symbols) and typeArgs (Types). A TypeVar with nonEmpty typeArgs can only be instantiated by a higher-kinded type that can be applied to those args. A TypeVar is much like a TypeRef, except it has special logic for equality and subtyping.
Precondition for this class, enforced structurally: args.isEmpty && params.isEmpty.
- Definition Classes
- Types
case class Typed extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.TypedApi with Product with Serializable
- Definition Classes
- Trees
class TypedLocator extends internal.SymbolTable.Locator
- Definition Classes
- Positions
case class UnApply extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.UnApplyApi with Product with Serializable
- Definition Classes
- Trees
class UndoLog extends Clearable
- Definition Classes
- TypeConstraints
final class UniqueConstantType extends internal.SymbolTable.FoldableConstantType
- Definition Classes
- Types
final class UniqueErasedValueType extends internal.SymbolTable.ErasedValueType
- Definition Classes
- Types
final class UniqueLiteralType extends internal.SymbolTable.LiteralType
- Definition Classes
- Types
final class UniqueSingleType extends internal.SymbolTable.SingleType
- Definition Classes
- Types
final class UniqueSuperType extends internal.SymbolTable.SuperType
- Definition Classes
- Types
final class UniqueThisType extends internal.SymbolTable.ThisType
- Definition Classes
- Types
abstract class UniqueType extends internal.SymbolTable.Type with Product
A type that can be passed to unique(..) and be stored in the uniques map.
- Definition Classes
- Types
final class UniqueTypeBounds extends internal.SymbolTable.TypeBounds
- Definition Classes
- Types
trait UntouchableTypeVar extends internal.SymbolTable.TypeVar
- Definition Classes
- Types
case class ValDef extends internal.SymbolTable.ValOrDefDef with internal.SymbolTable.ValDefApi with Product with Serializable
- Definition Classes
- Trees
abstract class ValOrDefDef extends internal.SymbolTable.MemberDef with internal.SymbolTable.ValOrDefDefApi
- Definition Classes
- Trees
class ValidateException extends Exception
- Definition Classes
- Positions
trait ValueClassDefinitions extends AnyRef
- Определяющие классы
- Определения
класс VarianceValidator extends internal.SymbolTable.InternalTraverser
Используется в Refchecks. TODO - устранить дублирование с varianceInType
- Определяющие классы
- Вариации
абстрактный класс VariancedTypeMap extends internal.SymbolTable.TypeMap
- Определяющие классы
- TypeMaps
Члены-значения
объект Expr реализует java.io.Serializable
Конструктор/экстрактор для Expr.
Может быть полезен при наличии дерева и желании вставить его в вызов reify, в этом случае дерево сначала нужно обернуть в expr.
Основной источник информации об expr – страница scala.reflect.api.Exprs.
- Определяющие классы
- Exprs
объект Liftable реализует Universe.StandardLiftableInstances
Компаньон для Liftable класса типов, содержащего стандартные экземпляры и предоставляющего вспомогательный метод apply для упрощения создания новых экземпляров.
- Определяющие классы
- Liftables
объект Unliftable реализует Universe.StandardUnliftableInstances
Компаньон для Unliftable класса типов, содержащего стандартные экземпляры и предоставляющего вспомогательный метод apply для упрощения создания новых экземпляров.
- Определяющие классы
- Liftables
объект BooleanFlag реализует java.io.Serializable
- Определяющие классы
- Printers
объект TypeTag реализует java.io.Serializable
Теги типов, соответствующие примитивным типам, и конструктор/экстрактор для WeakTypeTags.
- Определяющие классы
- TypeTags
объект WeakTypeTag реализует java.io.Serializable
Теги типов, соответствующие примитивным типам, и конструктор/экстрактор для WeakTypeTags.
- Определяющие классы
- TypeTags
final метод !=(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final метод ##(): Int
- Определяющие классы
- AnyRef → Any
метод +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из JavaUniverse вany2stringadd[JavaUniverse] выполненным методом any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
метод ->[B](y: B): (JavaUniverse, B)
- Неявный
- Этот член добавлен неявным преобразованием из JavaUniverse вArrowAssoc[JavaUniverse] выполненным методом ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final метод ==(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
значение AllOps: SymbolOps
- Определяющие классы
- Symbols
неявный значение AlternativeTag: ClassTag[Alternative]
- Определяющие классы
- Trees
неявный значение AnnotatedTag: ClassTag[Annotated]
- Определяющие классы
- Trees
неявный значение AnnotatedTypeTag: ClassTag[AnnotatedType]
- Определяющие классы
- Types
неявный val AnnotationTag: ClassTag[AnnotationInfo]
- Определения классов
- AnnotationInfos
неявный def AnyNameOps(name: Name): NameOps[Name]
- Определения классов
- Names
неявный val AppliedTypeTreeTag: ClassTag[AppliedTypeTree]
- Определения классов
- Trees
def Apply(sym: Symbol, args: Tree*): Tree
Метод-фабрика для узлов Apply.
- Определения классов
- Trees → Trees
def ApplyConstructor(tpt: Tree, args: List[Tree]): Apply
Список аргументов от 0 до 1, на основе дерева типов.
- Определения классов
- Trees → Trees
неявный val ApplyTag: ClassTag[Apply]
- Определения классов
- Trees
неявный val AssignTag: ClassTag[Assign]
- Определения классов
- Trees
def Bind(sym: Symbol, body: Tree): Bind
Метод-фабрика для узлов Bind.
- Определения классов
- Trees → Trees
неявный val BindTag: ClassTag[Bind]
- Определения классов
- Trees
def Block(stats: Tree*): Block
Метод-фабрика для блоков, который напрямую уплощает вложенные блоки.
- Определения классов
- Trees → Trees
неявный val BlockTag: ClassTag[Block]
- Определения классов
- Trees
final val BooleanTag: Int(2)
- Определения классов
- Constants
неявный val BoundedWildcardTypeTag: ClassTag[BoundedWildcardType]
- Определения классов
- Types
final val ByteTag: Int(3)
- Определения классов
- Constants
def CaseDef(pat: Tree, body: Tree): CaseDef
короткая форма casedef
- Классы-определения
- Trees → Trees
неявный val CaseDefTag: ClassTag[CaseDef]
- Классы-определения
- Trees
final val CharTag: Int(5)
- Классы-определения
- Constants
неявный val ClassDefTag: ClassTag[ClassDef]
- Классы-определения
- Trees
неявный val ClassInfoTypeTag: ClassTag[ClassInfoType]
- Классы-определения
- Types
неявный val ClassSymbolTag: ClassTag[ClassSymbol]
- Классы-определения
- Symbols
final val ClazzTag: Int(12)
- Классы-определения
- Constants
неявный val CompoundTypeTag: ClassTag[CompoundType]
- Классы-определения
- Types
неявный val CompoundTypeTreeTag: ClassTag[CompoundTypeTree]
- Классы-определения
- Trees
неявный val ConstantTag: ClassTag[Constant]
- Классы-определения
- Constants
неявный val ConstantTypeTag: ClassTag[ConstantType]
- Классы-определения
- Types
val CyclicInheritance: java.lang.Throwable
- Классы-определения
- BaseTypeSeqs
неявный val DefDefTag: ClassTag[DefDef]
- Классы-определения
- Trees
неявный val DefTreeTag: ClassTag[DefTree]
- Классы-определения
- Trees
final val DoubleTag: Int(9)
- Классы-определения
- Constants
lazy val EmptyTreeTypeSubstituter: TreeTypeSubstituter
- Классы-определения
- Trees
final val EnumTag: Int(13)
- Классы-определения
- Constants
неявный val ExistentialTypeTag: ClassTag[ExistentialType]
- Классы-определения
- Types
неявный val ExistentialTypeTreeTag: ClassTag[ExistentialTypeTree]
- Классы-определения
- Trees
def FlagOps(mask: Long): SymbolOps
- Классы-определения
- Symbols
неявный val FlagSetTag: ClassTag[FlagSet]
- Классы-определения
- FlagSets
final val FloatTag: Int(8)
- Definition Classes
- Constants
implicit val FreeTermSymbolTag: ClassTag[FreeTermSymbol]
- Definition Classes
- Symbols
implicit val FreeTypeSymbolTag: ClassTag[FreeTypeSymbol]
- Definition Classes
- Symbols
implicit val FunctionTag: ClassTag[Function]
- Definition Classes
- Trees
implicit val GenericApplyTag: ClassTag[GenericApply]
- Definition Classes
- Trees
val GlbFailure: java.lang.Throwable
- Definition Classes
- GlbLubs
def Ident(sym: Symbol): Ident
A factory method for Ident узлы.
- Definition Classes
- Trees → Trees
def Ident(имя: String): Ident
A factory method for Ident узлы.
- Definition Classes
- Trees → Trees
implicit val IdentTag: ClassTag[Ident]
- Definition Classes
- Trees
implicit val IfTag: ClassTag[If]
- Definition Classes
- Trees
implicit val ImplDefTag: ClassTag[ImplDef]
- Definition Classes
- Trees
implicit val ImportSelectorTag: ClassTag[ImportSelector]
- Definition Classes
- Trees
implicit val ImportTag: ClassTag[Import]
- Definition Classes
- Trees
final val IntTag: Int(6)
- Definition Classes
- Constants
implicit val JavaArgumentTag: ClassTag[ClassfileAnnotArg]
- Definition Classes
- AnnotationInfos
implicit val LabelDefTag: ClassTag[LabelDef]
- Definition Classes
- Trees
implicit val LiteralTag: ClassTag[Literal]
- Definition Classes
- Trees
final val LongTag: Int(7)
- Definition Classes
- Constants
implicit val MatchTag: ClassTag[Match]
- Definition Classes
- Trees
явное значение MemberDefTag: ClassTag[MemberDef]
- Определение классов
- Trees
явное значение MemberScopeTag: ClassTag[MemberScope]
- Определение классов
- Scopes
явное значение MethodSymbolTag: ClassTag[MethodSymbol]
- Определение классов
- Symbols
явное значение MethodTypeTag: ClassTag[MethodType]
- Определение классов
- Types
явное значение MirrorTag: ClassTag[Mirror]
- Определение классов
- JavaMirrors → ImplicitTags
метод Modifiers(flags: FlagSet): Modifiers
Фабрика для Modifiers экземпляров.
- Определение классов
- Trees
метод Modifiers(flags: FlagSet, privateWithin: Name): Modifiers
Фабрика для Modifiers экземпляров.
- Определение классов
- Trees
явное значение ModifiersTag: ClassTag[Modifiers]
- Определение классов
- Trees
явное значение ModuleDefTag: ClassTag[ModuleDef]
- Определение классов
- Trees
явное значение ModuleSymbolTag: ClassTag[ModuleSymbol]
- Определение классов
- Symbols
явное значение NameTag: ClassTag[Name]
- Определение классов
- Names
явное значение NameTreeTag: ClassTag[NameTree]
- Определение классов
- Trees
явное значение NamedArgTag: ClassTag[NamedArg]
- Определение классов
- Trees
метод New(симв: Symbol, аргументы: Tree*): Tree
Список аргументов «new» от 0 до 1, на основе символа.
- Определение классов
- Trees → Trees
метод New(тип: Type, argss: Список[Список[Tree]]): Tree
- Определение классов
- Trees
def New(tpe: Type, args: Tree*): Tree
Список аргументов new от 0 до 1, основанный на типе.
- Definition Classes
- Trees → Trees
def New(tpt: Tree, argss: List[List[Tree]]): Tree
Метод-фабрика для создания объектов. new tpt(args_1)...(args_n) New(t, as) расширяется до: (new t).<init>(as)
- Definition Classes
- Trees → Trees
def NewFromConstructor(constructor: Symbol, args: Tree*): Apply
- Definition Classes
- Trees
implicit val NewTag: ClassTag[New]
- Definition Classes
- Trees
val NoFlags: FlagSet
Пустой набор флагов
- Definition Classes
- FlagSets → FlagSets
val NoKindErrors: KindErrors
- Definition Classes
- Kinds
lazy val NoMods: Modifiers
Пустой объект Modifiers: без флагов, пустого аннотирования видимости и без аннотаций Scala.
- Definition Classes
- Trees
final val NoPeriod: Int(0)
- Definition Classes
- SymbolTable
val NoPosition: internal.util.NoPosition.type
Специальная "отсутствующая" позиция.
- Definition Classes
- Positions → Positions
final val NoRunId: Int(0)
- Definition Classes
- SymbolTable
lazy val NoSymbol: NoSymbol
Специальный "отсутствующий" символ. Часто используется в API для обозначения значения по умолчанию или пустого значения.
- Definition Classes
- Symbols → Symbols
final val NoTag: Int(0)
- Definition Classes
- Constants
final val NullTag: Int(11)
- Definition Classes
- Constants
implicit val NullaryMethodTypeTag: ClassTag[NullaryMethodType]
- Definition Classes
- Types
implicit val PackageDefTag: ClassTag[PackageDef]
- Definition Classes
- Trees
def PerRunReporting: PerRunReporting
- Attributes
- protected
- Definition Classes
- JavaUniverse → Reporting
implicit val PolyTypeTag: ClassTag[PolyType]
- Definition Classes
- Types
неявный val PositionTag: ClassTag[Position]
- Определения классов
- Positions
неявный val RefTreeTag: ClassTag[RefTree]
- Определения классов
- Trees
неявный val ReferenceToBoxedTag: ClassTag[ReferenceToBoxed]
- Определения классов
- Trees
неявный val RefinedTypeTag: ClassTag[RefinedType]
- Определения классов
- Types
неявный val ReturnTag: ClassTag[Return]
- Определения классов
- Trees
неявный val RuntimeClassTag: ClassTag[RuntimeClass]
- Определения классов
- JavaUniverse → ImplicitTags
неявный val ScopeTag: ClassTag[Scope]
- Определения классов
- Scopes
def Select(qualifier: Tree, sym: Symbol): Select
Метод-фабрика для узлов Select.
- Определения классов
- Trees → Trees
def Select(qualifier: Tree, name: String): Select
Метод-фабрика для узлов Select. Строковое name значение предполагается, что представляет собой TermName.
- Определения классов
- Trees → Trees
неявный val SelectFromTypeTreeTag: ClassTag[SelectFromTypeTree]
- Определения классов
- Trees
неявный val SelectTag: ClassTag[Select]
- Определения классов
- Trees
final val ShortTag: Int(4)
- Определения классов
- Constants
неявный val SingleTypeTag: ClassTag[SingleType]
- Определения классов
- Types
неявный val SingletonTypeTag: ClassTag[SingletonType]
- Определения классов
- Types
неявный val SingletonTypeTreeTag: ClassTag[SingletonTypeTree]
- Определения классов
- Trees
неявный val StarTag: ClassTag[Star]
- Определения классов
- Trees
явное значение StringContextStripMarginOps: (StringContext) => StringContextStripMarginOps
Добавляет интерполятор строк sm к scala.StringContext.
- Определяющие классы
- SymbolTable
окончательный значение StringTag: Int(10)
- Определяющие классы
- Constants
метод Super(симв: Symbol, смесь: TypeName): Tree
Метод-фабрика для узлов Super.
- Определяющие классы
- Trees → Trees
метод SuperSelect(класс: Symbol, симв: Symbol): Tree
Создаёт дерево, которое выбирает определённый член sym, не требуя квалификации super. Например, учитывая трайты B <:< A, класс C <:< B должен вызвать A.$init$. Если A не является прямым родителем, дерево super[A].$init$ не пройдёт типизацию ("не называет родителя"). Поэтому мы генерируем super.$init$ и предварительно присваиваем правильный символ. В особом случае typedSelectInternal присваивается правильный тип A к квалификатору super.
- Определяющие классы
- Trees
явное значение SuperTag: ClassTag[Super]
- Определяющие классы
- Trees
явное значение SuperTypeTag: ClassTag[SuperType]
- Определяющие классы
- Types
явное значение SymTreeTag: ClassTag[SymTree]
- Определяющие классы
- Trees
явное значение SymbolTag: ClassTag[Symbol]
- Определяющие классы
- Symbols
метод Template(симв: Symbol, тело: List[Tree]): Template
- симв
символ шаблона
- тело
деревья, составляющие тело шаблона
- возвращает
шаблон
- Определяющие классы
- Trees
явное значение TemplateTag: ClassTag[Template]
- Определяющие классы
- Trees
явное метод TermNameOps(имя: TermName): NameOps[TermName]
- Определяющие классы
- Names
явное значение TermNameTag: ClassTag[TermName]
- Определяющие классы
- Names
явное значение TermSymbolTag: ClassTag[TermSymbol]
- Определяющие классы
- Symbols
явное значение TermTreeTag: ClassTag[TermTree]
- Определяющие классы
- Trees
def This(sym: Symbol): Tree
A factory method for This узлов.
- Definition Classes
- Trees → Trees
implicit val ThisTag: ClassTag[This]
- Definition Classes
- Trees
implicit val ThisTypeTag: ClassTag[ThisType]
- Definition Classes
- Types
def Throw(tpe: Type, args: Tree*): Throw
A factory method for Throw узлов.
- Definition Classes
- Trees → Trees
implicit val ThrowTag: ClassTag[Throw]
- Definition Classes
- Trees
implicit val TreeCopierTag: ClassTag[TreeCopier]
- Definition Classes
- JavaUniverse → ImplicitTags
implicit val TreeTag: ClassTag[Tree]
- Definition Classes
- Trees
def Try(body: Tree, cases: (Tree, Tree)*): Try
A factory method for Try узлов.
- Definition Classes
- Trees → Trees
implicit val TryTag: ClassTag[Try]
- Definition Classes
- Trees
implicit val TypTreeTag: ClassTag[TypTree]
- Definition Classes
- Trees
implicit val TypeApplyTag: ClassTag[TypeApply]
- Definition Classes
- Trees
implicit val TypeBoundsTag: ClassTag[TypeBounds]
- Definition Classes
- Types
def TypeBoundsTree(sym: Symbol): TypeBoundsTree
- Definition Classes
- Trees
def TypeBoundsTree(bounds: TypeBounds): TypeBoundsTree
- Definition Classes
- Trees
implicit val TypeBoundsTreeTag: ClassTag[TypeBoundsTree]
- Определяющие классы
- Trees
неявный val TypeDefTag: ClassTag[TypeDef]
- Определяющие классы
- Trees
неявный def TypeNameOps(name: TypeName): NameOps[TypeName]
- Определяющие классы
- Names
неявный val TypeNameTag: ClassTag[TypeName]
- Определяющие классы
- Names
неявный val TypeRefTag: ClassTag[TypeRef]
- Определяющие классы
- Types
неявный val TypeSymbolTag: ClassTag[TypeSymbol]
- Определяющие классы
- Symbols
неявный val TypeTagg: ClassTag[Type]
- Определяющие классы
- Types
def TypeTree(tp: Type): TypeTree
Метод-фабрика для TypeTree узлов.
- Определяющие классы
- Trees → Trees
неявный val TypeTreeTag: ClassTag[TypeTree]
- Определяющие классы
- Trees
неявный val TypedTag: ClassTag[Typed]
- Определяющие классы
- Trees
неявный val UnApplyTag: ClassTag[UnApply]
- Определяющие классы
- Trees
final val UnitTag: Int(1)
- Определяющие классы
- Constants
неявный val ValDefTag: ClassTag[ValDef]
- Определяющие классы
- Trees
неявный val ValOrDefDefTag: ClassTag[ValOrDefDef]
- Определяющие классы
- Trees
def abort(msg: String): Nothing
- Определяющие классы
- Reporting
def adaptAnnotations(tree: Tree, mode: Mode, pt: Type): Tree
- Определяющие классы
- AnnotationCheckers
def adaptBoundsToAnnotations(bounds: List[TypeBounds], tparams: List[Symbol], targs: List[Type]): List[TypeBounds]
- Definition Classes
- AnnotationCheckers
- See also
AnnotationChecker.adaptBoundsToAnnotations
def adaptTypeOfReturn(tree: Tree, pt: Type, default: => Type): Type
- Definition Classes
- AnnotationCheckers
def addAnnotationChecker(checker: AnnotationChecker): Unit
Зарегистрировать обработчик аннотаций. Как правило, они добавляются плагинами компилятора.
- Definition Classes
- AnnotationCheckers
def addAnnotations(tree: Tree, tpe: Type): Type
- Definition Classes
- AnnotationCheckers
implicit def addFlagOps(left: FlagSet): FlagOps
API FlagSet экземпляров.
- Definition Classes
- FlagSets → FlagSets
def addMember(thistp: Type, tp: Type, sym: Symbol, depth: Depth): Unit
Сделать символ sym членом области tp.decls, где thistp - суженный тип владельца области.
- Definition Classes
- Types
def addMember(thistp: Type, tp: Type, sym: Symbol): Unit
- Definition Classes
- Types
def addSerializable(ps: Type*): List[Type]
- Definition Classes
- Types
final def allNames(): Iterator[TermName]
- Definition Classes
- Names
def annotatedType(annots: List[AnnotationInfo], underlying: Type): Type
Создатель для AnnotatedTypes. Возвращает базовый тип, если аннотации пусты, а не заходит в утверждение.
- Definition Classes
- Types
def annotationToTree(ann: Annotation): Tree
- Attributes
- protected[scala]
- Definition Classes
- AnnotationInfos → Annotations
def annotationsConform(tp1: Type, tp2: Type): Boolean
- Definition Classes
- AnnotationCheckers
- See also
AnnotationChecker.annotationsConform
def annotationsGlb(tpe: Type, ts: List[Type]): Type
- Definition Classes
- AnnotationCheckers
- See also
AnnotationChecker.annotationsGlb
def annotationsLub(tpe: Type, ts: List[Type]): Type
- Definition Classes
- AnnotationCheckers
- See also
AnnotationChecker.annotationsLub
def appliedType(tyconSym: Symbol, args: Type*): Type
Очень удобно.
- Definition Classes
- Types → Types
def appliedType(tyconSym: Symbol, args: List[Type]): Type
- Definition Classes
- Types → Types
- See also
def appliedType(tycon: Type, args: Type*): Type
- Definition Classes
- Types → Types
- See also
def appliedType(tycon: Type, args: List[Type]): Type
Создатель для приложений типов
- Definition Classes
- Types → Types
def arrayToRepeated(tp: Type): Type
Преобразует параметры массивов, обозначающие повторяемый параметр Java-метода, в типы JavaRepeatedParamClass.
- Definition Classes
- SymbolTable
final def asInstanceOf[T0]: T0
- Definition Classes
- Any
final def assert(assertion: Boolean, message: => Any): Unit
- Definition Classes
- SymbolTable
- Annotations
- @inline()
def assertCorrectThread(): Unit
Проверка того, что выполняющаяся нить является нитью компилятора. Здесь это операция без действия, переопределяется в interactive.Global.
- Definition Classes
- SymbolTable
- Annotations
- @elidable(elidable.WARNING)
final def atPhaseStack: List[Phase]
- Definition Classes
- SymbolTable
def atPhaseStackMessage: String
- Definition Classes
- SymbolTable
def atPos[T <: Tree](pos: Position)(tree: T): T
Позиционирование дерева. Это означает: Установка позиции узла и позиционирование всех его непозиционированных дочерних элементов.
- Definition Classes
- Positions → Positions
def backquotedPath(t: Tree): String
Преобразует путь в строку, добавляя обратные кавычки по мере необходимости.
- Definition Classes
- Printers
def baseTypeSingletonSeq(tp: Type): BaseTypeSeq
Создать последовательность базовых типов, состоящую из одного типа
- Definition Classes
- BaseTypeSeqs
def basetypeRecursions: Int
- Definition Classes
- SynchronizedTypes → Types
def basetypeRecursions_=(value: Int): Unit
- Definition Classes
- SynchronizedTypes → Types
final def bitSetByPredicate[A](xs: List[A])(pred: (A) => Boolean): BitSet
- Definition Classes
- Collections
val build: ReificationSupportImpl
- Definition Classes
- ReificationSupport
def canAdaptAnnotations(tree: Tree, mode: Mode, pt: Type): Boolean
- Definition Classes
- AnnotationCheckers
def captureVariable(vble: Symbol): Unit
Пометить переменную как захваченную; т.е. принудительно выполнить упаковку в тип *Ref.
- Definition Classes
- CapturedVariables
def capturedVariableType(vble: Symbol, tpe: Type = NoType, erasedTypes: Boolean = false): Type
Преобразовать тип захваченной переменной в тип *Ref.
- Definition Classes
- CapturedVariables
def capturedVariableType(vble: Symbol): Type
Преобразовать тип захваченной переменной в тип *Ref.
- Definition Classes
- CapturedVariables
def changeNonLocalOwners(tree: Tree, newowner: Symbol): Unit
- Definition Classes
- Trees
def checkKindBounds0(tparams: Список[Символ], targs: Список[Тип], pre: Тип, owner: Символ, explainErrors: Boolean): Список[(Тип, Символ, KindErrors)]
Проверка корректности типа применения (предполагается, что арности уже проверены) -- @M
Эта проверка также выполняется, когда абстрактные типы членов становятся конкретными (т.е. "псевдоним типа") -- тогда tparams.length==1 (проверяется один член типа за раз -- в этом случае префикс является именем псевдонима типа)
Применяемые типы аналогичны применению значений: они являются "контравариантными" в том смысле, что параметры типа предоставленных аргументов типа должны соответствовать параметрам типа требуемых параметров типа:
-
их границы должны быть менее строгими, ковариации должны совпадать (здесь ковариации абсолютные, ковариация параметра типа не влияет на ковариацию его параметров более высокого порядка) @M TODO: соответствуют ли этим условиям правильные, достаточные и необходимые условия?
например, класс Iterable[t, m[+x <: t]] --> применение Iterable[Int, List] допустимо, так как параметр типа List также является ковариантным, и его границы слабее, чем <: Int
- Definition Classes
- Kinds
val chrs: Массив[Символ]
Память для последовательного хранения всех имен.
- Definition Classes
- Names
def clone(): Объект
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
def cloneSymbols(syms: Список[Символ]): Список[Символ]
Вспомогательные функции, которые выводят символы путем клонирования.
- Definition Classes
- Symbols
def cloneSymbolsAndModify(syms: Список[Символ], infoFn: (Тип) => Тип): Список[Символ]
Клонировать символы и применить заданную функцию к информации каждого нового символа.
- syms
прототипические символы
- infoFn
функция, которая применяется к информации
- returns
новые, скорректированные по информации символы
- Definition Classes
- Symbols
def cloneSymbolsAtOwner(syms: Список[Символ], owner: Символ): Список[Символ]
- Definition Classes
- Symbols
def cloneSymbolsAtOwnerAndModify(syms: Список[Символ], owner: Символ, infoFn: (Тип) => Тип): Список[Символ]
- Definition Classes
- Symbols
final def closestEnclMethod(from: Символ): Символ
Возвращает ближайший метод, окружающий текущий, если не затенён внутренним классом.
- Definition Classes
- Symbols
- Annotations
- @tailrec()
final def collectFirst[A, B](as: Список[A])(pf: ЧастичнаяФункция[A, B]): Некоторые[B]
- Definition Classes
- Collections
final def collectMap2[A, B, C](xs1: Список[A], xs2: Список[B])(p: (A, B) => Boolean): Карта[A, B]
- Definition Classes
- Collections
def commonOwner(tps: Список[Тип]): Символ
Владелец самой глубокой вложенности, содержащий все символы данного типа или безпрефиксные typerefs/singletype в заданном списке типов.
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- CommonOwners
def commonOwner(t: Тип): Символ
Владелец самой глубокой вложенности, содержащий все символы данного типа или безпрефиксные typerefs/singletype в заданном типе.
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- CommonOwners
def commonOwnerMap: КартаОбщегоВладельца
- Attributes
- protected
- Definition Classes
- SynchronizedTypes → CommonOwners
final def compareLengths(xs1: Список[_], xs2: Список[_]): Целое
- Definition Classes
- Collections
- Annotations
- @tailrec()
def compoundBaseTypeSeq(tp: Тип): ПоследовательностьБазовыхТипов
Создаёт последовательность базовых типов составного типа с родителями tp.
- Definition Classes
- BaseTypeSeqs
def computeBaseClasses(tpe: Тип): Список[Символ]
- Attributes
- protected
- Definition Classes
- Types
def connectModuleToClass(m: ModuleSymbol, moduleClass: ClassSymbol): ModuleSymbol
- Definition Classes
- SynchronizedSymbols → Symbols
def containsExistential(tpe: Type): Boolean
- Definition Classes
- Types
def copyClassDef(tree: Tree)(mods: Modifiers = null, name: Name = null, tparams: List[TypeDef] = null, impl: Template = null): ClassDef
- Definition Classes
- Trees
def copyDefDef(tree: Tree)(mods: Modifiers = null, name: Name = null, tparams: List[TypeDef] = null, vparamss: List[List[ValDef]] = null, tpt: Tree = null, rhs: Tree = null): DefDef
- Definition Classes
- Trees
def copyMethodType(tp: Type, params: List[Symbol], restpe: Type): Type
Создать новый MethodType
- Definition Classes
- Types
def copyModuleDef(tree: Tree)(mods: Modifiers = null, name: Name = null, impl: Template = null): ModuleDef
- Definition Classes
- Trees
def copyRefinedType(original: RefinedType, parents: List[Type], decls: Scope): Type
- Definition Classes
- Types
def copyTypeDef(tree: Tree)(mods: Modifiers = null, name: Name = null, tparams: List[TypeDef] = null, rhs: Tree = null): TypeDef
- Definition Classes
- Trees
def copyTypeRef(tp: Type, pre: Type, sym: Symbol, args: List[Type]): Type
- Definition Classes
- Types
def copyValDef(tree: Tree)(mods: Modifiers = null, name: Name = null, tpt: Tree = null, rhs: Tree = null): ValDef
- Definition Classes
- Trees
final def corresponds3[A, B, C](xs1: List[A], xs2: List[B], xs3: List[C])(f: (A, B, C) => Boolean): Boolean
True if all three arguments have the same number of elements and the function is true for all the triples.
- Definition Classes
- Collections
- Annotations
- @tailrec()
def createFromClonedSymbols[T](syms: List[Symbol], tpe: Type)(creator: (List[Symbol], Type) => T): T
Функции, которые выполняют стандартное клонирование/замену заданных символов и типа, а затем вызывают функцию создателя с новыми символами и типом в качестве аргументов.
- Definition Classes
- Symbols
def createFromClonedSymbolsAtOwner[T](syms: List[Symbol], owner: Symbol, tpe: Type)(creator: (List[Symbol], Type) => T): T
- Definition Classes
- Symbols
def currentFreshNameCreator: FreshNameCreator
- Definition Classes
- JavaUniverse → FreshNames
final def currentPeriod: Period
Текущий период.
- Definition Classes
- SymbolTable
def currentRun: RunReporting
- Definition Classes
- JavaUniverse → Reporting
val currentRunId: Int
Идентификатор текущего запуска компилятора.
- Definition Classes
- ReflectSetup → SymbolTable
def currentRunProfilerAfterCompletion(root: Symbol, associatedFile: AbstractFile): Unit
- Attributes
- protected[scala]
- Definition Classes
- SymbolTable
def currentRunProfilerBeforeCompletion(root: Symbol, associatedFile: AbstractFile): Unit
- Attributes
- protected[scala]
- Definition Classes
- SymbolTable
def debugInfo(msg: => String): Unit
- Definition Classes
- SymbolTable
def debugStack(t: Throwable): Unit
Выводит трассировку стека, если задан флаг -Ydebug или его эквивалент; в противном случае ничего не делает.
- Definition Classes
- SymbolTable
def debugString(tp: Type): String
- Definition Classes
- TypeDebugging
def debuglog(msg: => String): Unit
Замените окончательной реализацией для инлайнинга.
- Definition Classes
- SymbolTable
def decodedSymName(tree: Tree, name: Name): String
- Definition Classes
- Printers
def defineBaseClassesOfCompoundType(tpe: CompoundType): Unit
- Attributes
- protected
- Definition Classes
- SynchronizedTypes → Types
def defineBaseTypeSeqOfCompoundType(tpe: CompoundType): Unit
- Attributes
- protected
- Definition Classes
- SynchronizedTypes → Types
def defineBaseTypeSeqOfTypeRef(tpe: TypeRef): Unit
- Attributes
- protected
- Definition Classes
- SynchronizedTypes → Types
def defineOriginalOwner(sym: Symbol, owner: Symbol): Unit
- Definition Classes
- Symbols
def defineParentsOfTypeRef(tpe: TypeRef): Unit
- Attributes
- protected
- Definition Classes
- SynchronizedTypes → Types
def defineUnderlyingOfSingleType(tpe: SingleType): Unit
- Атрибуты
- protected
- Определяющие классы
- SynchronizedTypes → Types
def deriveCaseDef(cdef: Tree)(applyToBody: (Tree) => Tree): CaseDef
- Определяющие классы
- Trees
def deriveClassDef(cdef: Tree)(applyToImpl: (Template) => Template): ClassDef
- Определяющие классы
- Trees
def deriveDefDef(ddef: Tree)(applyToRhs: (Tree) => Tree): DefDef
- Определяющие классы
- Trees
def deriveFreshSkolems(tparams: List[Symbol]): List[Symbol]
Преобразовать список символов типов параметров в сколемизированные символы, которые можно десколемизировать до исходного параметра типа. (Сколем — это представление связанной переменной при просмотре внутри области её действия.) !!!Adriaan: это не работает для типов hk.
Сколемы будут созданы на уровне 0, а не текущем значении skolemizationLevel. (См. scala/bug#7782)
- Определяющие классы
- ExistentialsAndSkolems
def deriveFunction(func: Tree)(applyToRhs: (Tree) => Tree): Function
- Определяющие классы
- Trees
def deriveLabelDef(ldef: Tree)(applyToRhs: (Tree) => Tree): LabelDef
- Определяющие классы
- Trees
def deriveModuleDef(mdef: Tree)(applyToImpl: (Template) => Template): ModuleDef
- Определяющие классы
- Trees
def deriveSymbols(syms: List[Symbol], symFn: (Symbol) => Symbol): List[Symbol]
Выводит новый список символов из данного списка, применяя к данному списку заданную функцию. Затем исправляет информацию обо всех новых символах, подставляя новые символы вместо исходных символов.
- syms
прототипические символы
- symFn
функция для создания новых символов
- возвращает
новый список символов с корректировкой информации
- Определяющие классы
- Symbols
def deriveSymbols2[A](syms: List[Symbol], as: List[A], symFn: (Symbol, A) => Symbol): List[Symbol]
Создаёт новый список символов из заданного списка, применяя заданную функцию к списку syms и as. Затем исправляет информацию обо всех новых символах, подставляя новые символы вместо исходных.
- syms
прототипичные символы
- as
аргументы, которые будут переданы в symFn вместе с символами из syms (должны быть той же длины)
- symFn
функция для создания новых символов
- returns
новый список символов с изменённой информацией
- Definition Classes
- Symbols
def deriveTemplate(templ: Tree)(applyToBody: (List[Tree]) => List[Tree]): Template
- Definition Classes
- Trees
def deriveType(syms: List[Symbol], symFn: (Symbol) => Symbol)(tpe: Type): Type
Получает новый тип, сначала производя новые символы, как в deriveSymbols, а затем выполняет ту же подстановку oldSyms => newSyms на tpe, что выполняется для информации о символах в deriveSymbols.
- syms
прототипичные символы
- symFn
функция для создания новых символов
- tpe
прототипичный тип
- returns
новый тип с подставленными символами
- Definition Classes
- Symbols
def deriveType2[A](syms: List[Symbol], as: List[A], symFn: (Symbol, A) => Symbol)(tpe: Type): Type
Получает новый тип, сначала производя новые символы, как в deriveSymbols2, а затем выполняет ту же подстановку oldSyms => newSyms на tpe, что выполняется для информации о символах в deriveSymbols.
- syms
прототипичные символы
- as
аргументы, которые будут переданы в symFn вместе с символами из syms (должны быть той же длины)
- symFn
функция для создания новых символов на основе
as- tpe
прототипичный тип
- returns
новый тип с подставленными символами
- Definition Classes
- Symbols
def deriveTypeWithWildcards(syms: List[Symbol])(tpe: Type): Type
Получает новый тип, подставляя WildcardTypes для заданного списка символов.
- syms
символы, которые нужно заменить
- returns
новый тип с WildcardType вместо указанных символов
- Definition Classes
- Symbols
def deriveValDef(vdef: Tree)(applyToRhs: (Tree) => Tree): ValDef
- Definition Classes
- Trees
def devWarning(msg: => String): Unit
- Definition Classes
- SymbolTable
final def devWarningDumpStack(msg: => String, maxFrames: Int): Unit
- Definition Classes
- SymbolTable
- Annotations
- @inline()
final def devWarningIf(cond: => Boolean)(msg: => String): Unit
dev-предупреждает, если включено dev-предупреждение и cond истинно; в противном случае — пустая операция
- Definition Classes
- SymbolTable
- Annotations
- @inline()
final def distinctBy[A, B](xs: Список[A])(f: (A) => B): Список[A]
- Definition Classes
- Collections
def duplicateAndKeepPositions(tree: Tree): Tree
- Definition Classes
- Trees
def elapsedMessage(msg: String, startNs: Long): String
- Attributes
- protected
- Definition Classes
- SymbolTable
def elementExtract(container: Symbol, tp: Type): Type
- Definition Classes
- Types
def elementExtractOption(container: Symbol, tp: Type): Вариант[Type]
- Definition Classes
- Types
def elementTest(container: Symbol, tp: Type)(f: (Type) => Boolean): Boolean
- Definition Classes
- Types
def elementTransform(container: Symbol, tp: Type)(f: (Type) => Type): Type
- Definition Classes
- Types
def elimAnonymousClass(t: Type): Type
- Definition Classes
- Types
def encode(str: String): TermName
- Definition Classes
- StdNames
def ensureNonOverlapping(tree: Tree, others: List[Tree], focus: Boolean): Unit
- Definition Classes
- Positions
def ensureNonOverlapping(tree: Tree, others: List[Tree]): Unit
Убедитесь, что у данного дерева нет позиций, которые перекрываются с позициями others. Это делается путем укорачивания диапазона, назначения TransparentPositions некоторым узлам в tree или фокусирования на позиции.
- Definition Classes
- Positions
def ensuring(cond: (JavaUniverse) => Boolean, msg: => Any): JavaUniverse
- Неявный
- Этот член добавляется с помощью неявного преобразования из JavaUniverse вEnsuring[JavaUniverse] выполненного методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: (JavaUniverse) => Boolean): JavaUniverse
- Неявный
- Этот член добавляется с помощью неявного преобразования из JavaUniverse вEnsuring[JavaUniverse] выполненного методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean, msg: => Any): JavaUniverse
- Неявный
- Этот член добавляется с помощью неявного преобразования из JavaUniverse вEnsuring[JavaUniverse] выполненного методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
def ensuring(cond: Boolean): JavaUniverse
- Неявный
- Этот член добавляется с помощью неявного преобразования из JavaUniverse вEnsuring[JavaUniverse] выполненного методом Ensuring в scala.Predef.
- Definition Classes
- Ensuring
final def enteringPhase[T](ph: Phase)(op: => T): T
Выполнить заданную операцию на заданной фазе.
- Definition Classes
- SymbolTable
- Аннотации
- @inline()
final def enteringPhaseNotLaterThan[T](target: Phase)(op: => T): T
- Definition Classes
- SymbolTable
- Аннотации
- @inline()
final def enteringPhaseWithName[T](phaseName: String)(body: => T): T
- Definition Classes
- SymbolTable
final def enteringPrevPhase[T](op: => T): T
- Definition Classes
- SymbolTable
- Аннотации
- @inline()
final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
def erasure: Erasure { val global: JavaUniverse.this.type }
- Definition Classes
- Transforms
def erasurePhase: SomePhase
- Definition Classes
- JavaUniverse → SymbolTable
def existentialAbstraction(tparams: Список[Символ], tpe0: Тип, flipVariance: Boolean = false): Тип
Создатель для экзистенциальных типов. Это генерирует:
tpe1 где { tparams }
где tpe1 является результатом экстраполяции tpe относительно tparams. Экстраполяция означает, что переменные типа в tparams, встречающиеся в ковариантных позициях, заменяются на верхние границы (минус любые маркеры SingletonClass), переменные типа в tparams, встречающиеся в контравариантных позициях, заменяются на верхние границы, при условии, что полученный тип является законным с точки зрения стабильности и не содержит переменных типа в tparams.
Абстракция отбрасывает все параметры типа, которые не ссылаются напрямую или косвенно на тип tpe1. Если оставшихся параметров типа нет, просто возвращает тип результата tpe.
- Definition Classes
- Types
final def existentialTransform[T](rawSyms: Список[Символ], tp: Тип, rawOwner: Символ = NoSymbol)(creator: (Список[Символ], Тип) => T): T
Учитывая набор rawSyms терм- и типов-символов и тип tp, создайте набор новых параметров типа и тип, чтобы его можно было абстрагировать в экзистенциальный тип. Каждый символ типа T в rawSyms отображается на клон. Каждый терм-символ x типа T в rawSyms получает связанный символ типа следующей формы:
тип x.type <: T с Singleton
Имя параметра типа — x.type, чтобы обеспечить удобную диагностику. Родитель Singleton гарантирует, что параметр типа по-прежнему рассматривается как стабильный тип. Символы типов в rawSyms полностью заменяются новыми символами. Символы термов также заменяются, за исключением символов термов типа Ident-дерева, где изменяется только тип Ident.
- Definition Classes
- ExistentialsAndSkolems
def existentialsInType(tpe: Тип): Список[Символ]
- Definition Classes
- Types
def existingSymbols(syms: Список[Символ]): Список[Символ]
- Definition Classes
- Symbols
final def exists2[A, B](xs1: Список[A], xs2: Список[B])(f: (A, B) => Boolean): Boolean
- Definition Classes
- Collections
final def exists3[A, B, C](xs1: Список[A], xs2: Список[B], xs3: Список[C])(f: (A, B, C) => Boolean): Boolean
- Definition Classes
- Collections
final def exitingPhase[T](ph: Phase)(op: => T): T
- Definition Classes
- SymbolTable
- Annotations
- @inline()
def explain[T](op: String, p: (Type, T) => Boolean, tp1: Type, arg2: T): Boolean
Выполнить операцию p над аргументами tp1, arg2 и напечатать трассировку вычисления.
- Attributes
- protected
- Definition Classes
- Types
def explainTypes(op: (Type, Type) => Any, found: Type, required: Type): Unit
Если опция explaintypes включена, вывести трассировку подтипов для op(found, required).
- Definition Classes
- Types
def explainTypes(found: Type, required: Type): Unit
Если опция explaintypes включена, вывести трассировку подтипов для found <:< required.
- Definition Classes
- Types
def finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
final def findOrElse[A](xs: IterableOnce[A])(p: (A) => Boolean)(orElse: => A): A
- Definition Classes
- Collections
final def findPhaseWithName(phaseName: String): Phase
- Definition Classes
- SymbolTable
final def findSymbol(xs: IterableOnce[Symbol])(p: (Symbol) => Boolean): Symbol
- Definition Classes
- SymbolTable
- Annotations
- @inline()
final def flatCollect[A, B](elems: List[A])(pf: PartialFunction[A, Iterable[B]]): List[B]
- Definition Classes
- Collections
final def flatMap2[A, B, C](xs1: List[A], xs2: List[B])(f: (A, B) => List[C]): List[C]
- Definition Classes
- Collections
final def flattensToEmpty(xss: Seq[Seq[_]]): Boolean
- Definition Classes
- Collections
- Annotations
- @tailrec()
final def focusInPlace(t: Tree): t.type
- Definition Classes
- Trees
final def foldLeft2[A1, A2, B](xs1: List[A1], xs2: List[A2])(z0: B)(f: (B, A1, A2) => B): B
- Definition Classes
- Collections
final def forall3[A, B, C](xs1: List[A], xs2: List[B], xs3: List[C])(f: (A, B, C) => Boolean): Boolean
- Definition Classes
- Collections
def force(): Unit
- Definition Classes
- JavaUniverseForce
final def foreach2[A, B](xs1: List[A], xs2: List[B])(f: (A, B) => Unit): Unit
- Definition Classes
- Collections
final def foreach3[A, B, C](xs1: List[A], xs2: List[B], xs3: List[C])(f: (A, B, C) => Unit): Unit
- Definition Classes
- Collections
def foreachParamss(sym: Symbol)(f: (Symbol) => Unit): Unit
- Definition Classes
- Symbols
final def foreachWithIndex[A](xs: List[A])(f: (A, Int) => Unit): Unit
- Definition Classes
- Collections
def formatted(fmtstr: String): String
- Неявный
- Этот член добавлен с помощью неявного преобразования из JavaUniverse вStringFormat[JavaUniverse] выполненного методом StringFormat в scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @inline()
def freshExistentialName(suffix: String, id: Int): TypeName
- Attributes
- protected
- Definition Classes
- Symbols
def freshTermName(prefix: String = nme.FRESH_TERM_NAME_PREFIX)(implicit creator: FreshNameCreator): TermName
- Definition Classes
- FreshNames
def freshTypeName(prefix: String)(implicit creator: FreshNameCreator): TypeName
- Definition Classes
- FreshNames
val gen: internal.TreeGen { val global: JavaUniverse.this.type }
- Definition Classes
- SymbolTable
def genPolyType(params: List[Symbol], tpe: Type): Type
- Definition Classes
- Types
final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
def getCurrentSymbolIdCount: Int
- Definition Classes
- Symbols
final def gilSynchronized[T](body: => T): T
- Definition Classes
- Gil
- Annotations
- @inline()
def glb(ts: List[Type], depth: Depth): Type
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- GlbLubs
def glb(ts: List[Type]): Type
Наибольшая нижняя граница списка типов (определённая по <:<).
- Definition Classes
- GlbLubs
def glbNorm(ts: List[Type], depth: Depth): Type
Наибольшая нижняя граница списка типов (определённая по <:<), которые были нормализованы относительно elimSuper.
- Attributes
- protected
- Definition Classes
- GlbLubs
def glbResults: HashMap[(Depth, List[Type]), Type]
- Definition Classes
- SynchronizedTypes → GlbLubs
def globalError(pos: Position, msg: String): Unit
- Definition Classes
- Reporting
- Annotations
- @deprecatedOverriding("This forwards to the corresponding method in reporter -- override reporter instead", "2.11.2")
def globalError(msg: String): Unit
- Definition Classes
- Reporting
- Annotations
- @deprecatedOverriding("This forwards to the corresponding method in reporter -- override reporter instead", "2.11.2")
val globalFreshNameCreator: FreshNameCreator
- Definition Classes
- FreshNames
final def hasLength(xs: List[_], len: Int): Boolean
Ещё раз избегаем вызова length, но интерфейс lengthCompare неудобен.
- Definition Classes
- Collections
def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
final def howManyUniqueTypes: Int
- Definition Classes
- Types
val ids: Int
- Attributes
- protected
- Definition Classes
- Symbols
def importableMembers(pre: Type): Scope
Члены, которые можно импортировать в другие области видимости.
- Definition Classes
- Types
def indent: String
- Definition Classes
- SynchronizedTypes → Types
def indent_=(value: String): Unit
- Definition Classes
- SynchronizedTypes → Types
def info(msg: => String): Unit
- Definition Classes
- SymbolTable
var infoTransformers: InfoTransformer
Набор всех установленных infotransformers.
- Definition Classes
- SymbolTable
def inform(pos: Position, msg: String): Unit
- Definition Classes
- Reporting
- Annotations
- @deprecatedOverriding("Это перенаправляется на соответствующий метод в reporter — вместо этого переопределите reporter", "2.11.2")
def inform(msg: String): Unit
- Definition Classes
- Reporting
- Annotations
- @deprecatedOverriding("Это перенаправляется на соответствующий метод в reporter — вместо этого переопределите reporter", "2.11.2")
def informProgress(msg: String): Unit
- Definition Classes
- SymbolTable
def informTime(msg: String, startNs: Long): Unit
- Definition Classes
- SymbolTable
final def informingProgress[T](msg: => String)(fn: => T): T
- Definition Classes
- SymbolTable
- Annotations
- @inline()
def inheritsJavaVarArgsMethod(clazz: Symbol): Boolean
- Definition Classes
- Types
def init(): Unit
def initAndEnterClassAndModule(owner: Symbol, name: TypeName, completer: (ClassSymbol, ModuleSymbol) => LazyType): (ClassSymbol, ModuleSymbol)
Создать класс и компаньон-объект, поместить в окружающую область видимости и инициализировать с помощью ленивого завершителя типа.
- owner
Владелец вновь созданного класса и объекта
- name
Простое имя вновь созданного класса
- completer
Завершитель, используемый для установки информации о классе и модуле
- Атрибуты
- protected
- Определяющие классы
- SymbolLoaders
def initClassAndModule(clazz: Symbol, module: Symbol, completer: LazyType): Unit
- Атрибуты
- protected
- Определяющие классы
- SymbolLoaders
def instantiatedBounds(pre: Type, owner: Symbol, tparams: List[Symbol], targs: List[Type]): List[TypeBounds]
- Определяющие классы
- Types
lazy val internal: Internal
- Определяющие классы
- JavaUniverse → Internals → Internals
- См. также
def intersectionType(tps: List[Type]): Type
Создатель для типа пересечения, где пересечения одного типа заменяются самим типом.
- Определяющие классы
- Types
def intersectionType(tps: List[Type], owner: Symbol): Type
Создатель для типа пересечения, где пересечения одного типа заменяются самим типом, а повторяющиеся родительские классы объединяются.
!!! Повторяющиеся родительские классы не объединяются - это ошибка в комментарии или в коде?
- Определяющие классы
- Types
def intersectionTypeForLazyBaseType(tps: List[Type]): Type
- Определяющие классы
- Types
def intersectionWitness: WeakHashMap[List[Type], WeakReference[Type]]
- Определяющие классы
- SynchronizedTypes → Types
def invalidateCaches(t: Type, updatedSyms: List[Symbol]): Unit
- Определяющие классы
- Types
def invalidateTreeTpeCaches(tree: Tree, updatedSyms: List[Symbol]): Unit
- Определяющие классы
- Types
final def isAtPhaseAfter(p: Phase): Boolean
Позднее ли текущая фаза компиляции, чем заданная?
- Definition Classes
- SymbolTable
def isBoundedGeneric(tp: Type): Boolean
- Definition Classes
- Types
def isCompilerUniverse: Boolean
Заявляет, что это вселенная рефлексии времени выполнения.
Это означает, что мы можем сделать определенные предположения для оптимизации вселенной. Например, мы можем автоматически инициализировать символы при запросах флагов и аннотаций (см. shouldTriggerCompleter ниже для получения дополнительной информации).
С другой стороны, это также означает, что сценарии использования вселенной будут отличаться от обычных. Например, нам необходимо выполнить дополнительную очистку, чтобы предотвратить утечки памяти: http://groups.google.com/group/scala-internals/browse_thread/thread/eabcf3d406dab8b2.
- Definition Classes
- SymbolTable → SymbolTable
def isConstantType(tp: Type): Boolean
- Definition Classes
- Types
final def isDeveloper: Boolean
- Definition Classes
- SymbolTable
def isDifferentType(tp1: Type, tp2: Type): Boolean
- Definition Classes
- TypeComparers
def isDifferentTypeConstructor(tp1: Type, tp2: Type): Boolean
- Definition Classes
- TypeComparers
def isDummyAppliedType(tp: Type): Boolean
- Definition Classes
- Types
final def isEligibleForPrefixUnification(tp: Type): Boolean
Является ли этот тип типом с префиксом, начинающимся с переменной типа, или это тип уточнения? Для префиксов типов, удовлетворяющих этому условию, типы выбора с тем же именем и равными (как определено в =:=) префиксами считаются равными с точки зрения =:=.
- Definition Classes
- Types
- Annotations
- @tailrec()
def isErrorOrWildcard(tp: Type): Boolean
- Definition Classes
- Types
final def isExistentialType(tp: Type): Boolean
- Definition Classes
- Types
- Annotations
- @tailrec()
def isHKSubType(tp1: Type, tp2: Type, depth: Depth): Boolean
- Definition Classes
- TypeComparers
def isImplicitMethodType(tp: Type): Boolean
- Definition Classes
- Types
final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
def isIntersectionTypeForLazyBaseType(tp: RefinedType): Boolean
- Definition Classes
- Types
def isJavaVarargsAncestor(clazz: Symbol): Boolean
- Definition Classes
- Types
def isNonRefinementClassType(tpe: Type): Boolean
def isNonValueType(tp: Type) = !isValueElseNonValue(tp)
- Определяющие классы
- Types
def isNumericSubType(tp1: Type, tp2: Type): Boolean
- Определяющие классы
- TypeComparers
def isPastTyper: Boolean
- Определяющие классы
- SymbolTable
def isPopulated(tp1: Type, tp2: Type): Boolean
Является ли пересечение заданных типов заполненным? То есть, для всех типов tp1, tp2 в пересечении для всех общих базовых классов bc tp1 и tp2 пусть bt1, bt2 будут базовыми типами tp1, tp2 относительно класса bc Затем: bt1 и bt2 имеют одинаковый префикс, и любые соответствующие невариантные аргументы типов bt1 и bt2 одинаковы
- Определяющие классы
- Types
def isPossiblePrefix(clazz: Symbol): Boolean
Может ли данный символ быть важным при вычислении префикса типа? Когда вызывается tp.asSeenFrom(pre, clazz) для tp, результат будет tp неизменным, если pre тривиален и clazz символ такой, что isPossiblePrefix(clazz) == false.
- Определяющие классы
- TypeMaps
def isRawIfWithoutArgs(sym: Symbol): Boolean
- Определяющие классы
- Types
def isRawParameter(sym: Symbol): Boolean
- Определяющие классы
- ExistentialsAndSkolems
def isRawType(tp: Type): Boolean
Является ли тип tp сырым типом?
- Определяющие классы
- Types
def isSameType(tp1: Type, tp2: Type): Boolean
Обозначают ли tp1 и tp2 эквивалентные типы?
- Определяющие классы
- TypeComparers
def isSameType2(tp1: Type, tp2: Type): Boolean
- Определяющие классы
- TypeComparers
def isSameTypes(tps1: List[Type], tps2: List[Type]): Boolean
Являются ли tps1 и tps2 списки парных эквивалентных типов?
- Определяющие классы
- Types
def isSingleType(tp: Type): Boolean
Это, похоже, эквивалентно tp.isInstanceof[SingletonType], за исключением исключения FoldableConstantTypes.
- Определяющие классы
- Types
def isSubArgs(tps1: List[Type], tps2: List[Type], tparams: List[Symbol], depth: Depth): Boolean
- Определяющие классы
- Types
def isSubType(tp1: Type, tp2: Type, depth: Depth = Depth.AnyDepth): Boolean
- Definition Classes
- TypeComparers
def isTreeSymbolPickled(tree: Tree): Boolean
Этот метод должен быть эквивалентен tree.hasSymbolField, но этот метод не пригоден при распаковке, поскольку нам нужно знать, исходя из тега Int — дерево ещё не существует. Таким образом, этот метод — только документация.
- Definition Classes
- Translations
def isTreeSymbolPickled(code: Int): Boolean
- Definition Classes
- Translations
def isUnboundedGeneric(tp: Type): Boolean
- Definition Classes
- Types
def isUseableAsTypeArg(tp: Type): Boolean
Это определено и названо так, потому что цель состоит в том, чтобы исключить типы уровня источника, которые не являются типами значений (например, MethodType), не исключая необходимые внутренние типы, такие как WildcardType. Также есть типы, которые не являются значениями, но могут использоваться как аргументы типа (например, конструкторы типов.)
- Definition Classes
- Types
final def isUseableAsTypeArgs(tps: List[Type]): Boolean
- Definition Classes
- Types
- Annotations
- @tailrec()
final def isValid(period: Period): Boolean
- Definition Classes
- SymbolTable
final def isValidForBaseClasses(period: Period): Boolean
- Definition Classes
- SymbolTable
def isWeakSubType(tp1: Type, tp2: Type): Boolean
- Definition Classes
- TypeComparers
def isWithinBounds(pre: Type, owner: Symbol, tparams: List[Symbol], targs: List[Type]): Boolean
Соответствуют ли аргументы типа targs формальным параметрам tparams?
- Definition Classes
- Types
val javanme: JavaKeywords
- Definition Classes
- StdNames
var keepPhaseStack: Boolean
- Definition Classes
- SymbolTable
def kindsConform(tparams: List[Symbol], targs: List[Type], pre: Type, owner: Symbol): Boolean
- Definition Classes
- Kinds
final def linkedMapFrom[A, A1 >: A, B](xs: Список[A])(f: (A) => B): LinkedHashMap[A1, B]
- Definition Classes
- Collections
def lockedCount: Целое
- Definition Classes
- Symbols
def lockedCount_=(i: Целое): Единица
- Definition Classes
- Symbols
def log(msg: => AnyRef): Единица
- Definition Classes
- JavaUniverse → SymbolTable
final def lookupTypeName(cs: Массив[Символ]): TypeName
Используется бэкендом GenBCode для поиска имен типов, которые уже известны. Этот метод может вызываться в многопоточной среде. Вызов newTypeName вместо него может быть небезопасен.
Можно использовать в многопоточных приложениях: имена добавляются в таблицы хешей только после их полного построения.
- Definition Classes
- Names
implicit def lowPriorityNameOrdering[T <: Имя]: Порядок[T]
- Definition Classes
- SymbolTable
def lub(ts: Список[Тип], depth: Глубина): Тип
Наименьшая верхняя граница по отношению к <:< списка типов
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- GlbLubs
def lub(ts: Список[Тип]): Тип
- Definition Classes
- GlbLubs
def lubDepth(ts: Список[Тип]): Глубина
Максимальная допустимая глубина lub или glb над типами ts.
- Definition Classes
- Types
def lubList(ts: Список[Тип], depth: Глубина): Список[Тип]
Дана матрица tsBts, столбцы которой представляют собой последовательности базовых типов (и символы tsParams, которые следует интерпретировать как параметры типа в этой матрице), вычислите ее наименьшую упорядоченную вверх замкнутую верхнюю границу относительно следующего порядка <= между списками типов:
xs <= ys тогда и только тогда, когда для всех y в ys существует x в xs, такое что x <: y
- Definition Classes
- GlbLubs
def lubResults: HashMap[(Глубина, Список[Тип]), Тип]
- Definition Classes
- SynchronizedTypes → GlbLubs
def makeNoSymbol: NoSymbol
- Attributes
- protected
- Definition Classes
- SynchronizedSymbols → Symbols
final def map2[A, B, C](xs1: Список[A], xs2: Список[B])(f: (A, B) => C): Список[C]
- Definition Classes
- Collections
final def map2Conserve[A <: AnyRef, B](xs: List[A], ys: List[B])(f: (A, B) => A): List[A]
как map2, но возвращает список xs сам по себе - вместо копии - если функция f отображает все элементы сами на себя.
- Definition Classes
- Collections
final def map3[A, B, C, D](xs1: List[A], xs2: List[B], xs3: List[C])(f: (A, B, C) => D): List[D]
- Definition Classes
- Collections
final def mapFilter2[A, B, C](itA: Iterator[A], itB: Iterator[B])(f: (A, B) => Option[C]): Iterator[C]
- Definition Classes
- Collections
final def mapFrom[A, A1 >: A, B](xs: List[A])(f: (A) => B): Map[A1, B]
- Definition Classes
- Collections
final def mapList[A, B](as: List[A])(f: (A) => B): List[B]
Версия List#map, специализированная для List, и оптимизированная для избежания выделения памяти, если as пусто
- Definition Classes
- Collections
def mapParamss[T](sym: Symbol)(f: (Symbol) => T): List[List[T]]
Глубокое отображение параметров символа.
- Definition Classes
- Symbols
final def mapWithIndex[A, B](xs: List[A])(f: (A, Int) => B): List[B]
- Definition Classes
- Collections
final def markAllCompleted(sym1: Symbol, sym2: Symbol): Unit
- Definition Classes
- Symbols
final def markAllCompleted(sym: Symbol): Unit
- Definition Classes
- Symbols
final def markFlagsCompleted(sym1: Symbol, sym2: Symbol)(mask: Long): Unit
- Definition Classes
- Symbols
final def markFlagsCompleted(sym: Symbol)(mask: Long): Unit
- Definition Classes
- Symbols
final def matchesType(tp1: Type, tp2: Type, alwaysMatchSimple: Boolean): Boolean
Функция, реализующая tp1 соответствует tp2.
- Definition Classes
- Types
def matchingParams(syms1: Список[Символ], syms2: Список[Символ]): Boolean
Являются ли списки параметров syms1 и syms2 списками с парно эквивалентными типами?
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- Types
final val maxToStringRecursions: Int(50)
Максимальное количество рекурсий, разрешенных в toString
- Definition Classes
- TypeToStrings
def mergePrefixAndArgs(tps0: Список[Тип], variance: Variance, depth: Depth): Тип
Вычислить lub (если variance == Covariant) или glb (если variance == Contravariant) заданного списка типов tps. Все типы в tps являются typerefs или singletypes с одним и тем же символом. Вернуть x, если вычисление выполняется с результатом x. Вернуть NoType, если вычисление не выполняется.
- Definition Classes
- Types
final def mexists[A](xss: Список[Список[A]])(p: (A) => Boolean): Boolean
Все эти mm-методы — это методы стиля "глубокая карта" для отображения и т. д. на списке списков, избегая ненужных промежуточных структур, таких как те, которые создаются с помощью flatten.
- Definition Classes
- Collections
final def mfind[A](xss: Список[Список[A]])(p: (A) => Boolean): Вариант[A]
- Definition Classes
- Collections
final def mforall[A](xss: Список[Список[A]])(p: (A) => Boolean): Boolean
- Definition Classes
- Collections
final def mforeach[A](xss: Итерируемый[Итерируемый[A]])(f: (A) => Unit): Unit
- Definition Classes
- Collections
final def mforeach[A](xss: List[List[A]])(f: (A) => Unit): Unit
Все они написаны в терминах List, потому что мы пытаемся извлечь всю возможную производительность, а List используется почти исключительно в компиляторе, но люди начинают использовать другие коллекции, поэтому вот перегрузка.
- Definition Classes
- Collections
def mirrorThatLoaded(sym: Symbol): Mirror
Возвращает зеркало, которое загрузило данный символ.
- Definition Classes
- JavaMirrors → SymbolTable
val missingAliasException: MissingAliasControl
- Definition Classes
- Types
def missingHook(owner: Symbol, name: Name): Symbol
1. Если owner это класс пакета (но не пустой пакет), и name имя термина, создайте новый пакет <owner>.<name>, в противном случае верните NoSymbol. Исключение: Если owner — корень, и существует java-класс с данным именем, создайте символ в пустом пакете вместо этого. 2. Если owner это пакет scala, и name обозначает фантомный класс, верните соответствующий символ класса и введите его в ScalaPackage этого зеркала.
- Definition Classes
- JavaMirrors → SymbolTable
def mkImporter(from0: Universe): Importer { val from: from0.type }
- Definition Classes
- Importers
final def mkThreadLocalStorage[T](x: => T): ThreadLocalStorage[T]
- Definition Classes
- ThreadLocalStorage
- Annotations
- @inline()
final def mmap[A, B](xss: List[List[A]])(f: (A) => B): collection.immutable.List[collection.immutable.List[B]]
- Definition Classes
- Collections
final val nameDebug: Boolean(false)
- Definition Classes
- Names
final def nameTableSize: Int
- Definition Classes
- Names
final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
def nestedMemberType(sym: Symbol, pre: Type, owner: Symbol): Type
Более устойчивый вариант Type#memberType, который не требует, чтобы символ был непосредственным членом префикса.
Например:
class C[T] {
sealed trait F[A]
object X {
object S1 extends F[T]
}
class S2 extends F[T]
}
object O extends C[Int] {
def foo(f: F[Int]) = f match {...} // need to enumerate sealed subtypes of the scrutinee here.
}
class S3 extends O.F[String]
nestedMemberType(<S1>, <O.type>, <C>) = O.X.S1.type
nestedMemberType(<S2>, <O.type>, <C>) = O.S2.type
nestedMemberType(<S3>, <O.type>, <C>) = S3.type
- sym
Символ подтипа
- pre
Префикс, из которого виден символ
- Definition Classes
- Types
def newBaseTypeSeq(parents: List[Type], elems: Array[Type]): BaseTypeSeq
- Attributes
- protected
- Definition Classes
- SynchronizedOps → BaseTypeSeqs
def newCodePrinter(writer: PrintWriter, tree: Tree, printRootPkg: Boolean): TreePrinter
Зацеп для определения того, что означает showCode(...).
- Definition Classes
- Printers → Printers
def newDefDef(sym: Symbol, rhs: Tree)(mods: Modifiers = Modifiers(sym.flags), name: TermName = sym.name.toTermName, tparams: List[TypeDef] = sym.typeParams map TypeDef.apply, vparamss: List[List[ValDef]] = mapParamss(sym)(ValDef.apply), tpt: Tree = TypeTreeMemberType(sym)): DefDef
- Definition Classes
- Trees
final def newExistentialType(quantified: List[Symbol], underlying: Type): Type
Создатель для экзистенциальных типов, который сглаживает вложенные экзистенциальные типы.
- Definition Classes
- Types
- Annotations
- @tailrec()
def newFreeTermSymbol(name: TermName, value: => Any, flags: Long = 0L, origin: String = null): FreeTermSymbol
Создать новый свободный член. Его владельцем является NoSymbol.
- Definition Classes
- SynchronizedSymbols → Symbols
def newFreeTypeSymbol(name: TypeName, flags: Long = 0L, origin: String = null): FreeTypeSymbol
Создать новый свободный тип. Его владельцем является NoSymbol.
- Definition Classes
- SynchronizedSymbols → Symbols
def newLazyTreeCopier: TreeCopier
Создаёт ленивый копировщик дерева.
- Definition Classes
- JavaUniverse → Trees
def newMappedBaseTypeSeq(orig: BaseTypeSeq, f: (Type) => Type): MappedBaseTypeSeq with SynchronizedBaseTypeSeq
- Attributes
- protected
- Definition Classes
- SynchronizedOps → BaseTypeSeqs
final def newNestedScope(outer: Scope): Scope
Создать новую область видимости, вложенную в другую, с которой она разделяет свои элементы
- Definition Classes
- Scopes
def newPackageScope(pkgClass: Symbol): PackageScope
- Definition Classes
- SymbolLoaders
def newRawTreePrinter(writer: PrintWriter): RawTreePrinter
Способ определения того, что означает showRaw(...).
- Definition Classes
- Printers → Printers
def newScope: Scope with SynchronizedScope
Создать новый контекст
- Definition Classes
- SynchronizedOps → Scopes
def newScopeWith(elems: Symbol*): Scope
Создать новый контекст с заданными начальными элементами
- Definition Classes
- Scopes
def newStrictTreeCopier: TreeCopier
Создаёт копировщик дерева.
- Definition Classes
- JavaUniverse → Trees
def newStubSymbol(owner: Symbol, name: Name, missingMessage: String): Symbol
- Attributes
- protected
- Definition Classes
- Symbols
final def newTermName(bs: Array[Byte], offset: Int, len: Int): TermName
Создать имя из UTF8 закодированных байтов в bs[offset..offset+len-1].
- Definition Classes
- Names
def newTermName(s: String): TermName
Создать имя из строки.
- Definition Classes
- Names → Names
- Annotations
- @deprecatedOverriding("Чтобы синхронизировать, используйте `override def synchronizeNames = true`", "2.11.0")
final def newTermName(cs: Array[Char], offset: Int, len0: Int, cachedString: String): TermName
Создать имя из символов в cs[offset..offset+len-1]. TODO - реализовать режим, где проверка имени выполняется во время создания (например, если имя содержит строку "$class", то проверять, находится ли эта строка в самом конце).
- len0
длина имени. Отрицательные длины приводят к пустым именам.
- Definition Classes
- Names
final def newTermName(cs: Array[Char]): TermName
- Definition Classes
- Names
final def newTermName(cs: Array[Char], offset: Int, len: Int): TermName
Создать имя из символов в cs[offset..offset+len-1].
- Definition Classes
- Names
final def newTermNameCached(s: String): TermName
- Definition Classes
- Names
def newTreePrinter(): TreePrinter
- Definition Classes
- Printers
def newTreePrinter(stream: OutputStream): TreePrinter
- Definition Classes
- Printers
def newTreePrinter(writer: PrintWriter): TreePrinter
Способ определения, что означает show(...).
- Definition Classes
- Printers → Printers
def newTypeDef(sym: Symbol, rhs: Tree)(mods: Modifiers = Modifiers(sym.flags), name: TypeName = sym.name.toTypeName, tparams: List[TypeDef] = sym.typeParams map TypeDef.apply): TypeDef
- Definition Classes
- Trees
final def newTypeName(bs: Array[Byte], offset: Int, len: Int): TypeName
Создать имя типа из UTF8-кодированных байтов в bs[offset..offset+len-1].
- Definition Classes
- Names
final def newTypeName(cs: Array[Char], offset: Int, len: Int): TypeName
Создать имя типа из символов в cs[offset..offset+len-1].
- Definition Classes
- Names
def newTypeName(s: String): TypeName
Создать имя типа из строки.
- Definition Classes
- Names → Names
- Annotations
- @deprecatedOverriding("Чтобы синхронизировать, используйте `override def synchronizeNames = true`", "2.11.0")
final def newTypeName(cs: Array[Char], offset: Int, len: Int, cachedString: String): TypeName
- Definition Classes
- Names
final def newTypeName(cs: Array[Char]): TypeName
- Definition Classes
- Names
final def newTypeNameCached(s: String): TypeName
- Definition Classes
- Names
def newValDef(sym: Symbol, rhs: Tree)(mods: Modifiers = Modifiers(sym.flags), name: TermName = sym.name.toTermName, tpt: Tree = TypeTreeMemberType(sym)): ValDef
- Definition Classes
- Trees
var nextFrom: Array[InfoTransformer]
- Definition Classes
- SymbolTable
def nextId(): Int
- Атрибуты
- protected
- Определяющие классы
- SynchronizedSymbols → Symbols
def nonTrivialMembers(clazz: Symbol): Scope
Члены данного класса, кроме тех, которые унаследованы от Any или AnyRef.
- Определяющие классы
- Types
final def normalizePlus(tp: Type): Type
- Определяющие классы
- Types
- Аннотации
- @tailrec()
final def notify(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @native()
final def notifyAll(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @native()
def numericLub(ts: List[Type]): Type
- Определяющие классы
- GlbLubs
def openPackageModule(pkgClass: Symbol): Unit
если есть объект-член package в pkgClass, введите его члены в него.
- Определяющие классы
- SymbolTable
def openPackageModule(container: Symbol, dest: Symbol): Unit
- Определяющие классы
- SymbolTable
def overloadedType(pre: Type, alternatives: List[Symbol]): Type
Канонический создатель для OverloadedTypes.
- Определяющие классы
- Types
final def packSymbols(hidden: List[Symbol], tp: Type, rawOwner: Symbol = NoSymbol): Type
Вычисление экзистенциального типа из скрытых символов hidden и типа tp.
- hidden
Символы, которые будут экзистенциально абстрагированы
- tp
Исходный тип
- rawOwner
Владелец для Java-сырых типов.
- Определяющие классы
- ExistentialsAndSkolems
def paramString(tp: Type): String
- Определяющие классы
- TypeDebugging
final def partitionInto[A](xs: List[A], pred: (A) => Boolean, ayes: ListBuffer[A], nays: ListBuffer[A]): Unit
- Определяющие классы
- Collections
def pendingBaseTypes: HashSet[Type]
- Definition Classes
- SynchronizedTypes → Types
def pendingSubTypes: HashSet[SubTypePair]
- Definition Classes
- SynchronizedTypes → TypeComparers
final def period(rid: RunId, pid: Int): Period
- Definition Classes
- SymbolTable
final def phase: Phase
- Definition Classes
- SymbolTable
final def phaseId(period: Period): Int
Идентификатор фазы заданного периода.
- Definition Classes
- SymbolTable
final def phaseOf(period: Period): Phase
Фаза, связанная с данным периодом.
- Definition Classes
- SymbolTable
val phaseWithId: Array[Phase]
Фаза, имеющая данный индекс в качестве идентификатора.
- Definition Classes
- ReflectSetup → SymbolTable
final def phase_=(p: Phase): Unit
- Definition Classes
- SymbolTable
def picklerPhase: SomePhase
- Definition Classes
- JavaUniverse → SymbolTable
def picklerSubTag(tree: Tree): Int
- Definition Classes
- Translations
final def picklerTag(tpe: Type): Int
- Definition Classes
- Translations
- Annotations
- @tailrec()
def picklerTag(sym: Symbol): Int
Только локальные символы. Оценка локальности зависит от запутанных условий, которые зависят, в том числе, от корневого символа, который сериализуется, поэтому её нельзя воспроизвести здесь. Символы, к которым относятся теги сериализации, - EXTMODCLASSref и EXTref. Эти теги никогда не создаются здесь - такие символы должны быть исключены до вызова этого метода.
- Definition Classes
- Translations
final def picklerTag(ref: AnyRef): Int
- Definition Classes
- Translations
final def popPhase(ph: Phase): Unit
- Definition Classes
- SymbolTable
lazy val posAssigner: PosAssigner
- Attributes
- protected[this]
- Definition Classes
- Positions
def postErasure: PostErasure { val global: JavaUniverse.this.type }
- Definition Classes
- Transforms
def propagatePackageBoundary(jflags: JavaAccFlags, syms: Symbol*): Unit
- Definition Classes
- PrivateWithin
def propagatePackageBoundary(m: Member, syms: Symbol*): Unit
- Definition Classes
- PrivateWithin
def propagatePackageBoundary(c: Class[_], syms: Symbol*): Unit
- Definition Classes
- PrivateWithin
final def pushPhase(ph: Phase): Phase
- Definition Classes
- SymbolTable
def quotedName(name: String): String
- Definition Classes
- Printers
def quotedName(name: Name): String
- Definition Classes
- Printers
def quotedName(name: Name, decode: Boolean): String
Добавляет обратные кавычки, если имя является ключевым словом языка Scala.
- Definition Classes
- Printers
def rangePos(source: SourceFile, start: Int, point: Int, end: Int): Position
- Definition Classes
- Positions
def rawToExistential: TypeMap
Преобразование необработанного типа в экзистенциальный тип. Необходимо, потому что из файла класса можно прочитать необработанный тип параметризованного класса Java. В момент чтения типа соответствующий файл класса может ещё не быть прочитан, поэтому параметры типа типа неизвестны. Следовательно, преобразование необработанных типов в экзистенциальные типы может не произойти в ClassFileParser.sigToType (где оно обычно выполняется).
- Definition Classes
- TypeMaps
def recursionTable: Map[Symbol, Int]
- Definition Classes
- SynchronizedSymbols → Symbols
def recursionTable_=(value: Map[Symbol, Int]): Unit
- Definition Classes
- SynchronizedSymbols → Symbols
def referenceCapturedVariable(vble: Symbol): Tree
Пометить данный идентификатор как ссылку на саму переменную, захваченную в процессе выполнения, подавляя при этом обращение к ней с помощью поля elem.
- Definition Classes
- CapturedVariables
def refinedType(parents: List[Type], owner: Symbol): Type
Канонический создатель типа с уточнениями с изначально пустым пространством имен.
- Definition Classes
- Types
def refinedType(parents: List[Type], owner: Symbol, decls: Scope, pos: Position): Type
Канонический создатель типа с уточнениями с заданным пространством имен.
- Definition Classes
- Types
macro def reify[T](expr: T): Expr[T]
Используйте reify для создания дерева абстрактного синтаксиса, представляющего заданное выражение Scala.
Например:
val five = reify{ 5 } // Literal(Constant(5))
reify{ 5.toString } // Apply(Select(Literal(Constant(5)), TermName("toString")), List())
reify{ five.splice.toString } // Apply(Select(five, TermName("toString")), List())
Сгенерированное дерево зависит от того, reify где был вызван метод.
Используйте scala.reflect.api.Exprs#Expr.splice для встраивания существующего выражения в вызов reify. Используйте Expr для преобразования Tree в выражение, которое можно встроить.
- Definition Classes
- Universe
def removeAllAnnotationCheckers(): Unit
Удалить все проверки аннотаций
- Definition Classes
- AnnotationCheckers
def render(what: Any, mkPrinter: (PrintWriter) => JavaUniverse.TreePrinter, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String
- Attributes
- protected
- Definition Classes
- Printers
def repackExistential(tp: Type): Type
Переупаковывать экзистенциальные типы, иначе они иногда распаковываются в неправильном месте (вывод типа приводит к неожиданному сколему)
- Definition Classes
- Types
def reporter: Reporter
- Definition Classes
- JavaUniverse → Reporting
final def require(requirement: Boolean, message: => Any): Unit
- Definition Classes
- SymbolTable
- Annotations
- @inline()
def rootClassLoader: ClassLoader
- Definition Classes
- JavaMirrors
lazy val rootMirror: Mirror
Корневое зеркало этой вселенной. Это зеркало содержит стандартные классы и типы Scala, такие как Any, AnyRef, AnyVal, Nothing, Null, и все классы, загруженные из scala-library, которые совместно используются во всех зеркалах в окружающей вселенной.
- Definition Classes
- JavaMirrors → Mirrors
final def runId(period: Period): RunId
Идентификатор выполнения заданного периода.
- Definition Classes
- SymbolTable
def runtimeMirror(cl: ClassLoader): Mirror
Создаёт зеркало рефлексии времени выполнения из загрузчика класса JVM.
Для получения дополнительной информации о Mirrors, см. scala.reflect.api.Mirrors или Руководство по рефлексии: Зеркала
- Definition Classes
- JavaMirrors → JavaUniverse
final def sameElementsEquals(thiss: List[AnyRef], that: List[AnyRef]): Boolean
- Definition Classes
- Collections
final def sameLength(xs1: List[_], xs2: List[_]): Boolean
Истина, если у двух списков одинаковая длина. Поскольку вызов length для линейных последовательностей имеет сложность O(n), это нежелательный способ проверки равенства длины.
- Definition Classes
- Collections
def sameWeakLubAsLub(tps: List[Type]): Boolean
Совпадает ли этот набор типов с слабой верхней границей с обычной верхней границей? Это экспонируется, чтобы вызывающие функции верхней границы могли обнаружить, могут ли деревья, которые они типизируют, потребовать дальнейшей адаптации. Может возвращать ложноположительные результаты, но не будет возвращать ложноотрицательные результаты.
- Definition Classes
- GlbLubs
def saveOriginalOwner(sym: Symbol): Unit
- Attributes
- protected
- Definition Classes
- Symbols
def scopeTransform(owner: Symbol)(op: => Scope): Scope
- Definition Classes
- SymbolLoaders
final def sequenceOpt[A](as: List[Option[A]]): Option[List[A]]
- Definition Classes
- Collections
def setAllInfos(clazz: Symbol, module: Symbol, info: Type): Unit
- Attributes
- protected
- Definition Classes
- SymbolLoaders
def setPackageAccessBoundary(sym: Symbol): Symbol
- Definition Classes
- PrivateWithin
lazy val settings: Settings
- Definition Classes
- JavaUniverse → SymbolTable
val shorthands: Set[String]
- Definition Classes
- Types
def shouldLogAtThisPhase: Boolean
- Definition Classes
- SymbolTable
def show(position: Position): String
Отображает удобочитаемое представление позиции.
- Definition Classes
- Printers → Printers
def show(flags: FlagSet): String
Отображает удобочитаемое представление набора флагов.
- Definition Classes
- Printers → Printers
def show(name: Name): String
Отображает удобочитаемое представление имени.
- Definition Classes
- Printers → Printers
def show(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String
Отображает представление фрагмента рефлексии как дизассемблированного кода Scala.
- Definition Classes
- Printers
def showCode(tree: Дерево, printTypes: ФлагБулево = None, printIds: ФлагБулево = None, printOwners: ФлагБулево = None, printPositions: ФлагБулево = None, printRootPkg: Булево = false): Строка
Отображает код переданного дерева, так что: 1) он может быть позже скомпилирован scalac, сохраняя то же значение, 2) он выглядит красиво. #1 доступен для деревьев без атрибутов и атрибутированных деревьев #2 более или менее хорошо отформатирован с точки зрения отступов, но на данный момент в нём много оставленных десугаризаций, и это то, что мы планируем улучшить в будущем. Параметры printTypes, printIds, printPositions имеют тот же смысл, что и для TreePrinter параметр printRootPkg доступен только для атрибутированных деревьев.
- Definition Classes
- Printers
def showDecl(sym: Символ): Строка
Отображает строку, представляющую объявление этого символа на языке Scala.
- Definition Classes
- Printers → Printers
def showRaw(position: Позиция): Строка
Отображает внутреннюю структуру позиции.
- Definition Classes
- Printers
def showRaw(flags: НаборФлагов): Строка
Отображает внутреннюю структуру набора флагов.
- Definition Classes
- Printers
def showRaw(name: Имя): Строка
Отображает внутреннюю структуру имени.
- Definition Classes
- Printers
def showRaw(any: Любой, printTypes: ФлагБулево = None, printIds: ФлагБулево = None, printOwners: ФлагБулево = None, printKinds: ФлагБулево = None, printMirrors: ФлагБулево = None, printPositions: ФлагБулево = None): Строка
Отображает внутреннюю структуру артефакта рефлексии как визуализацию синтаксического дерева Scala.
- Definition Classes
- Printers
def singleType(pre: Тип, sym: Символ): Тип
Канонический создатель для типов-одиночек
- Definition Classes
- Types
def singletonBounds(hi: Тип): ГраницыТипов
- Definition Classes
- Types
def skipPrefixOf(pre: Тип, clazz: Символ): Булево
- Attributes
- protected[scala.reflect.internal]
- Definition Classes
- TypeMaps
def skolemizationLevel: Int
- Определения классов
- SynchronizedTypes → Types
def skolemizationLevel_=(value: Int): Unit
- Определения классов
- SynchronizedTypes → Types
def slowButSafeEnteringPhase[T](ph: Phase)(op: => T): T
- Определения классов
- SymbolTable
def slowButSafeEnteringPhaseNotLaterThan[T](target: Phase)(op: => T): T
- Определения классов
- SymbolTable
lazy val sn: SymbolNames
- Определения классов
- StdNames
def solve(tvars: List[TypeVar], tparams: List[Symbol], getVariance: Extractor[Symbol], upper: Boolean, depth: Depth): Boolean
Решить ограничение, собранное в типах tvars.
- tvars
Все переменные типов, которые нужно подставить.
- tparams
Параметры типов, соответствующие
tvars- getVariance
Функция для извлечения вариаций параметров типов; нам нужно перевернуть направление решения для всех контравариантных переменных.
- upper
Когда
trueпоиск максимального решения, иначе минимального.
- Определения классов
- TypeConstraints
def spanningTypes(ts: List[Type]): List[Type]
Минимальный список типов, имеющий заданный список типов в качестве последовательности базовых типов
- Определения классов
- GlbLubs
def specializesSym(preLo: Type, symLo: Symbol, preHi: Type, symHi: Symbol, depth: Depth): Boolean
Является ли член symLo типа tpLo сильнее, чем член symHi типа tpHi?
- Атрибуты
- protected[scala.reflect.internal]
- Определения классов
- Types
def specializesSym(tp: Type, sym: Symbol, depth: Depth): Boolean
- Определения классов
- Types
final val statistics: Statistics with ReflectStats
Некоторые статистические данные (обычно отключены) устанавливаются с помощью -Ystatistics
- Определения классов
- JavaUniverse → SymbolTable
final def stripExistentialsAndTypeVars(ts: List[Type], expandLazyBaseType: Boolean = false): (List[Type], List[Symbol])
- Классы-определения
- Типы
def subsametypeRecursions: Int
- Классы-определения
- SynchronizedTypes → TypeComparers
def subsametypeRecursions_=(value: Int): Unit
- Классы-определения
- SynchronizedTypes → TypeComparers
final def sumSize(xss: List[List[_]], acc: Int): Int
- Классы-определения
- Collections
- Аннотации
- @tailrec()
def supplementErrorMessage(errorMessage: String): String
- Классы-определения
- Reporting
def supplementTyperState(errorMessage: String): String
- Классы-определения
- Reporting
final def suspendingTypeVars[T](tvs: List[TypeVar])(op: => T): T
- Классы-определения
- Типы
- Аннотации
- @inline()
def symName(tree: Tree, name: Name): String
- Классы-определения
- Printers
def symbolOf[T](implicit arg0: WeakTypeTag[T]): TypeSymbol
- Классы-определения
- Symbols
def synchronizeNames: Boolean
- Атрибуты
- protected
- Классы-определения
- SynchronizedOps → Names
final def synchronized[T0](arg0: => T0): T0
- Классы-определения
- AnyRef
lazy val termNames: nme.type
- Классы-определения
- StdNames
def throwableAsString(t: Throwable, maxFrames: Int): String
- Классы-определения
- SymbolTable
def throwableAsString(t: Throwable): String
- Классы-определения
- SymbolTable
def toString(): String
- Классы-определения
- AnyRef → Any
def toStringRecursions: Int
- Классы-определения
- SynchronizedTypes → TypeToStrings
def toStringRecursions_=(value: Int): Unit
- Классы-определения
- SynchronizedTypes → TypeToStrings
def toStringSubjects: HashSet[Type]
- Классы-определения
- SynchronizedTypes → TypeToStrings
final val traceSymbolActivity: Boolean
Dump each symbol to stdout after shutdown.
- Классы-определения
- SymbolTable
def transformedType(tpe: Type): Type forSome {val _1: PostErasure { val global: JavaUniverse.this.type }}
- Классы-определения
- Transforms
def transformedType(симв: Symbol): Type forSome {val stabilizer$1: PostErasure { val global: JavaUniverse.this.type }}
- Definition Classes
- Transforms
def transparentShallowTransform(контейнер: Symbol, тип: Type)(f: (Type) => Type): Type
- Definition Classes
- Types
final def transposeSafe[A](массив: List[List[A]]): Option[List[List[A]]]
- Definition Classes
- Collections
final def traverseOpt[A, B](список: List[A])(f: (A) => Option[B]): Option[List[B]]
- Definition Classes
- Collections
lazy val treeBuild: TreeGen
- Definition Classes
- Internals
val treeCopy: TreeCopier
The standard (lazy) tree copier.
- Definition Classes
- Trees
def treeLine(узел: Tree): String
- Attributes
- protected
- Definition Classes
- Trees
def treeStatus(узел: Tree, внешнийУзел: Tree = null): String
- Attributes
- protected
- Definition Classes
- Trees
def treeSymStatus(узел: Tree): String
- Attributes
- protected
- Definition Classes
- Trees
def treeToAnnotation(узел: Tree): Annotation
- Attributes
- protected[scala]
- Definition Classes
- AnnotationInfos → Annotations
def treeToString(узел: Tree): String
By default trees are printed with show
- Attributes
- protected
- Definition Classes
- Printers
final def typeDepth(тип: Type): Depth
The maximum depth of type tp
- Definition Classes
- Types
def typeFun(tps: Список[Символ], body: Тип): Тип
Создатель функций типа, предполагая, что параметры типа tps уже имеют правильного владельца.
- Definition Classes
- Типы
lazy val typeNames: tpnme.type
- Definition Classes
- StdNames
def typeOf[T](implicit ttag: TypeTag[T]): Тип
Сокращение для implicitly[TypeTag[T]].tpe
- Definition Classes
- TypeTags
def typeParamsString(tp: Тип): Строка
- Definition Classes
- TypeDebugging
def typeParamsToExistentials(clazz: Символ): Список[Символ]
- Definition Classes
- Типы
def typeParamsToExistentials(clazz: Символ, tparams: Список[Символ]): Список[Символ]
- Definition Classes
- Типы
final def typeRef(pre: Тип, sym: Символ, args: Список[Тип]): Тип
Каноничный создатель для typerefs todo: см., как мы можем немного его улучшить
- Definition Classes
- Типы
- Annotations
- @tailrec()
def typeTag[T](implicit ttag: TypeTag[T]): TypeTag[T]
Сокращение для implicitly[TypeTag[T]]
- Definition Classes
- TypeTags
def typeToString(tpe: Тип): Строка
- Attributes
- protected
- Definition Classes
- TypeToStrings
def typeTreeSymbol(tree: TypeTree): Символ
Делегат для символа TypeTree. Эта операция небезопасна, так как может вызвать проверку типов при принудительном получении символа типа базового типа.
- Attributes
- protected
- Definition Classes
- Trees
def typeVarsInType(tp: Тип): Список[TypeVar]
Список переменных типа в типе.
- Definition Classes
- Типы
final def uncheckedBounds(tp: Тип): Тип
Добавляет аннотацию @uncheckedBound, если у заданного tp есть аргументы типа
- Definition Classes
- Типы
def uncurry: UnCurry { val global: JavaUniverse.this.type }
- Definition Classes
- Преобразования
lazy val undetBaseTypeSeq: BaseTypeSeq
Маркерный объект для последовательности базовых типов, которая ещё не вычислена. Используется для обнаружения циклов наследования
- Definition Classes
- ПоследовательностиБазовыхТипов
def undoLog: UndoLog
- Definition Classes
- СинхронизированныеТипы → ОграниченияТипов
def unique[T <: Тип](tp: T): T
- Definition Classes
- СинхронизированныеТипы → Типы
def useOffsetPositions: Boolean
- Definition Classes
- Позиции
def validateClassInfo(tp: ТипКласса): Единица
Проверка, что у пакетов есть области действия пакетов
- Definition Classes
- ЗагрузчикиСимволов
def validatePositions(tree: Дерево): Единица
- Definition Classes
- Позиции
final def varianceInType(tp: Тип)(tparam: Символ): Вариативность
Вычисление вариативности параметра типа tparam в типе tp.
- Definition Classes
- Вариативности
final def varianceInTypes(tps: Список[Тип])(tparam: Символ): Вариативность
Вычисление вариативности параметра типа tparam во всех типах tps.
- Definition Classes
- Вариативности
final def wait(): Единица
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Целое): Единица
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Единица
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()
def warning(pos: Позиция, msg: Строка): Единица
- Definition Classes
- Сообщения
- Annotations
- @deprecatedOverriding("This forwards to the corresponding method in reporter -- override reporter instead", "2.11.2")
def warning(msg: Строка): Единица
- Definition Classes
- Сообщения
- Annotations
- @deprecatedOverriding("This forwards to the corresponding method in reporter -- override reporter instead", "2.11.2")
def weakLub(tps: List[Type]): Type
Если аргументы — все числовые типы значений, то числовое наименьшее общее обобщение (НОО) в соответствии со спецификацией слабого соответствия. Если у любого аргумента есть аннотации типа, то берётся НОО неаннотированного типа и вызывается метод analyzerPlugin annotationsLub, чтобы его можно было дополнительно изменить. В противном случае — обычное НОО.
- Definition Classes
- GlbLubs
def weakTypeOf[T](implicit attag: WeakTypeTag[T]): Type
Сокращение для implicitly[WeakTypeTag[T]].tpe
- Definition Classes
- TypeTags
def weakTypeTag[T](implicit attag: WeakTypeTag[T]): WeakTypeTag[T]
Сокращение для implicitly[WeakTypeTag[T]]
- Definition Classes
- TypeTags
def withTypesExplained[A](op: => A): A
Выполнить op, выведя трассировку операций с типами.
- Definition Classes
- Types
def wrappingIntoTerm(tree0: Tree)(op: (Tree) => Tree): Tree
- Definition Classes
- Trees
def wrappingPos(trees: List[Tree]): Position
Позиция, которая оборачивает непустой набор деревьев. Точка позиции обертывания — точка позиции первого дерева. Если некоторые деревья не являются синтетическими, возвращает позицию диапазона, охватывающую несинтетические деревья. В противном случае возвращает позицию синтетического смещения для указания.
- Definition Classes
- Positions → Positions
def wrappingPos(default: Position, trees: List[Tree], focus: Boolean): Position
- Definition Classes
- Positions
def wrappingPos(default: Position, trees: List[Tree]): Position
Позиция, которая оборачивает набор деревьев. Точка позиции обертывания — точка позиции по умолчанию. Если некоторые деревья являются диапазонами, возвращает позицию диапазона, охватывающую все диапазоны. В противном случае возвращает позицию по умолчанию, которая либо фокусирована, либо нет.
- Definition Classes
- Positions → Positions
def xprintTree(treePrinter: TreePrinter, tree: Tree): Unit
Точка расширения для дополнений
- Definition Classes
- Printers
def xtransform(transformer: Transformer, tree: Tree): Tree
Обеспечивает точку расширения для стратегии преобразования. Гарантирует совместимость с новыми типами узлов.
- Attributes
- protected
- Definition Classes
- Trees
object Alternative extends internal.SymbolTable.AlternativeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Alternative.
- Определяющие классы
- Trees → Trees
object Annotated extends internal.SymbolTable.AnnotatedExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Annotated.
- Определяющие классы
- Trees → Trees
object AnnotatedType extends internal.SymbolTable.AnnotatedTypeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров AnnotatedType.
- Определяющие классы
- Types → Types
object Annotation extends internal.SymbolTable.AnnotationExtractor
Конструктор/экстрактор для экземпляров Annotation.
- Определяющие классы
- AnnotationInfos → Annotations
object AnnotationInfo
- Определяющие классы
- AnnotationInfos
object AppliedTypeTree extends internal.SymbolTable.AppliedTypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров AppliedTypeTree.
- Определяющие классы
- Trees → Trees
object Apply extends internal.SymbolTable.ApplyExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Apply.
- Определяющие классы
- Trees → Trees
object ApproximateDependentMap extends internal.SymbolTable.TypeMap
- Определяющие классы
- TypeMaps
object ArrayTypeRef
- Определяющие классы
- Types
object Assign extends internal.SymbolTable.AssignExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Assign.
- Определяющие классы
- Trees → Trees
object BackquotedIdentifierAttachment extends internal.SymbolTable.PlainAttachment with Product with Serializable
При наличии указывает на то, что основной Ident был создан из идентификатора, заключенного в обратные кавычки.
- Определяющие классы
- StdAttachments
object Bind extends internal.SymbolTable.BindExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Bind.
- Определяющие классы
- Trees → Trees
object Block extends internal.SymbolTable.BlockExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Block.
- Определяющие классы
- Trees → Trees
object BoundedWildcardType extends internal.SymbolTable.BoundedWildcardTypeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров BoundedWildcardType.
- Определяющие классы
- Types → Types
object CaseDef extends internal.SymbolTable.CaseDefExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров CaseDef.
- Определяющие классы
- Trees → Trees
object ClassDef extends internal.SymbolTable.ClassDefExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров ClassDef.
- Определяющие классы
- Trees → Trees
object ClassInfoType extends internal.SymbolTable.ClassInfoTypeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров ClassInfoType.
- Определяющие классы
- Types → Types
объект CompoundType
- Классы-определения
- Types
объект CompoundTypeTree extends internal.SymbolTable.CompoundTypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для CompoundTypeTree экземпляров.
- Классы-определения
- Trees → Trees
объект ConsoleWriter extends Writer
Писатель, записывающий в текущую консоль и реагирующий на замену потока вывода консоли.
- Классы-определения
- Printers
объект Constant extends internal.SymbolTable.ConstantExtractor with java.io.Serializable
Конструктор/экстрактор для Constant экземпляров.
- Классы-определения
- Constants → Constants
объект ConstantType extends internal.SymbolTable.ConstantTypeExtractor
Конструктор/экстрактор для ConstantType экземпляров.
- Классы-определения
- Types → Types
объект ConstructorNeedsFence extends internal.SymbolTable.PlainAttachment with Product with Serializable
- Классы-определения
- StdAttachments
объект DefDef extends internal.SymbolTable.DefDefExtractor with java.io.Serializable
Конструктор/экстрактор для DefDef экземпляров.
- Классы-определения
- Trees → Trees
объект DelambdafyTarget extends internal.SymbolTable.PlainAttachment with Product with Serializable
- Классы-определения
- StdAttachments
объект EmptyScope extends internal.SymbolTable.Scope
Пустой scope (неизменяемый).
- Классы-определения
- Scopes
объект EmptyTree extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with internal.SymbolTable.CannotHaveAttrs with Product with Serializable
Пустое дерево
- Классы-определения
- Trees → Trees
объект ErasedValueType extends java.io.Serializable
- Классы-определения
- Types
объект ErroneousCollector extends internal.SymbolTable.TypeCollector[Boolean]
- Классы-определения
- TypeMaps
объект ErrorType extends internal.SymbolTable.Type with Product with Serializable
Объект, представляющий ошибочный тип
- Классы-определения
- Types
объект ExistentialType extends internal.SymbolTable.ExistentialTypeExtractor with java.io.Serializable
Конструктор/экстрактор для ExistentialType экземпляров.
- Классы-определения
- Types → Types
объект ExistentialTypeTree extends internal.SymbolTable.ExistentialTypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для ExistentialTypeTree экземпляров.
- Классы-определения
- Trees → Trees
объект Flag extends internal.SymbolTable.FlagValues
Модуль, содержащий все возможные значения, которые могут составлять наборы флагов.
- Классы-определения
- FlagSets → FlagSets
объект FoldableConstantType extends java.io.Serializable
- Классы-определения
- Types
объект ForAttachment extends internal.SymbolTable.PlainAttachment with Product with Serializable
Идентифицирует деревья как результат или промежуточное значение для рассахаривания цикла for.
- Definition Classes
- StdAttachments
object Function extends internal.SymbolTable.FunctionExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Function.
- Definition Classes
- Trees → Trees
object GenPolyType
Создатель и экстрактор для параметризаций типов, который удаляет пустые списки параметров типов. Используйте этот метод-фабрику, чтобы указать, что тип имеет вид * (это полиморфное значение)
- Definition Classes
- Types
object HasTypeMember
- Definition Classes
- Types
object Ident extends internal.SymbolTable.IdentExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Ident.
- Definition Classes
- Trees → Trees
object If extends internal.SymbolTable.IfExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров If.
- Definition Classes
- Trees → Trees
object Import extends internal.SymbolTable.ImportExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Import.
- Definition Classes
- Trees → Trees
object ImportSelector extends internal.SymbolTable.ImportSelectorExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров ImportSelector.
- Definition Classes
- Trees → Trees
object InlineCallsiteAttachment extends internal.SymbolTable.InlineAnnotatedAttachment with Product with Serializable
- Definition Classes
- StdAttachments
object IsDependentCollector extends internal.SymbolTable.TypeCollector[Boolean]
- Definition Classes
- TypeMaps
object Kind
- Definition Classes
- Kinds
object KnownDirectSubclassesCalled extends internal.SymbolTable.PlainAttachment with Product with Serializable
Прикрепляется к символу класса, чтобы указать, что его потомки были обнаружены с помощью knownDirectSubclasses. Потомки, добавленные впоследствии, вызовут ошибку, указывающую на то, что предыдущее наблюдение было неполным.
- Definition Classes
- StdAttachments
object LabelDef extends internal.SymbolTable.LabelDefExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров LabelDef.
- Definition Classes
- Trees → Trees
object Literal extends internal.SymbolTable.LiteralExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Literal.
- Definition Classes
- Trees → Trees
object LiteralType extends java.io.Serializable
- Definition Classes
- Types
object LookupNotFound extends internal.SymbolTable.NameLookup with Product with Serializable
- Definition Classes
- Scopes
object Match extends internal.SymbolTable.MatchExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров Match.
- Definition Classes
- Trees → Trees
object MethodType extends internal.SymbolTable.MethodTypeExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров MethodType.
- Definition Classes
- Types → Types
object MethodValue
- Definition Classes
- Trees
объект Modifiers extends internal.SymbolTable.ModifiersExtractor with java.io.Serializable
Конструктор/экстрактор для Modifiers экземпляров.
- Definition Classes
- Trees → Trees
объект ModuleDef extends internal.SymbolTable.ModuleDefExtractor with java.io.Serializable
Конструктор/экстрактор для ModuleDef экземпляров.
- Definition Classes
- Trees → Trees
объект NamedArg extends internal.SymbolTable.NamedArgExtractor with java.io.Serializable
Конструктор/экстрактор для NamedArg экземпляров.
- Definition Classes
- Trees → Trees
объект New extends internal.SymbolTable.NewExtractor with java.io.Serializable
Конструктор/экстрактор для New экземпляров.
- Definition Classes
- Trees → Trees
объект NoInlineCallsiteAttachment extends internal.SymbolTable.InlineAnnotatedAttachment with Product with Serializable
- Definition Classes
- StdAttachments
объект NoPrefix extends internal.SymbolTable.Type with Product with Serializable
Объект, представляющий несуществующий префикс
- Definition Classes
- Types → Types
объект NoType extends internal.SymbolTable.Type with Product with Serializable
Объект, представляющий несуществующий тип
- Definition Classes
- Types → Types
объект NoWarnAttachment extends internal.SymbolTable.PlainAttachment with Product with Serializable
Связка, освобождённая от предупреждения об отсутствии использования.
Её хост Ident был создан из связки pattern2, case x @ p. В отсутствие именованных параметров в шаблонах, это позволяет иметь нюансированные предупреждения об отсутствии использования переменных. Таким образом, case X(x = _) => не будет предупреждать; пока что, case X(x @ _) => является документацией, если x не используется.
- Definition Classes
- StdAttachments
объект NullaryMethodType extends internal.SymbolTable.NullaryMethodTypeExtractor with java.io.Serializable
Конструктор/экстрактор для NullaryMethodType экземпляров.
- Definition Classes
- Types → Types
объект OuterArgCanBeElided extends internal.SymbolTable.PlainAttachment with Product with Serializable
Прикреплён к локальному классу, у которого внешний член исключён. Постоянная null может быть передана вместо внешнего параметра, может помочь вызывающим сторонам избежать захвата внешнего экземпляра.
- Definition Classes
- StdAttachments
объект PackageDef extends internal.SymbolTable.PackageDefExtractor with java.io.Serializable
Конструктор/экстрактор для PackageDef экземпляров.
- Definition Classes
- Trees → Trees
объект PatVarDefAttachment extends internal.SymbolTable.PlainAttachment with Product with Serializable
Указывает, что ValDef был синтезирован из определения шаблона, val P(x).
- Definition Classes
- StdAttachments
объект PolyType extends internal.SymbolTable.PolyTypeExtractor with java.io.Serializable
Конструктор/экстрактор для PolyType экземпляров.
- Definition Classes
- Types → Types
объект ProperTypeKind
- Definition Classes
- Kinds
объект RefTree extends internal.SymbolTable.RefTreeExtractor
Конструктор/экстрактор для RefTree экземпляров.
- Definition Classes
- Trees → Trees
объект ReferenceToBoxed extends internal.SymbolTable.ReferenceToBoxedExtractor with java.io.Serializable
- Классы-определения
- Trees
объект RefinedType extends internal.SymbolTable.RefinedTypeExtractor with java.io.Serializable
Конструктор/экстрактор для RefinedType экземпляров.
- Классы-определения
- Types → Types
объект Return extends internal.SymbolTable.ReturnExtractor with java.io.Serializable
Конструктор/экстрактор для Return экземпляров.
- Классы-определения
- Trees → Trees
объект Scope
- Классы-определения
- Scopes
объект Select extends internal.SymbolTable.SelectExtractor with java.io.Serializable
Конструктор/экстрактор для Select экземпляров.
- Классы-определения
- Trees → Trees
объект SelectFromTypeTree extends internal.SymbolTable.SelectFromTypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для SelectFromTypeTree экземпляров.
- Классы-определения
- Trees → Trees
объект SingleType extends internal.SymbolTable.SingleTypeExtractor with java.io.Serializable
Конструктор/экстрактор для SingleType экземпляров.
- Классы-определения
- Types → Types
объект SingletonTypeTree extends internal.SymbolTable.SingletonTypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для SingletonTypeTree экземпляров.
- Классы-определения
- Trees → Trees
объект Star extends internal.SymbolTable.StarExtractor with java.io.Serializable
Конструктор/экстрактор для Star экземпляров.
- Классы-определения
- Trees → Trees
объект StaticallyAnnotatedType
- Классы-определения
- Types
объект Super extends internal.SymbolTable.SuperExtractor with java.io.Serializable
Конструктор/экстрактор для Super экземпляров.
- Классы-определения
- Trees → Trees
объект SuperType extends internal.SymbolTable.SuperTypeExtractor with java.io.Serializable
Конструктор/экстрактор для SuperType экземпляров.
- Классы-определения
- Types → Types
объект SyntheticUnitAttachment extends internal.SymbolTable.PlainAttachment with Product with Serializable
Идентифицирует константы единиц, которые были вставлены компилятором (например, gen.mkBlock)
- Классы-определения
- StdAttachments
объект Template extends internal.SymbolTable.TemplateExtractor with java.io.Serializable
Конструктор/экстрактор для Template экземпляров.
- Классы-определения
- Trees → Trees
объект TermName extends internal.Names.TermNameExtractor
Конструктор/экстрактор для TermName экземпляров.
- Классы-определения
- Names → Names
объект This extends internal.SymbolTable.ThisExtractor with java.io.Serializable
Конструктор/экстрактор для This экземпляров.
- Классы-определения
- Trees → Trees
объект ThisType extends internal.SymbolTable.ThisTypeExtractor with java.io.Serializable
Конструктор/экстрактор для ThisType экземпляров.
- Классы-определения
- Types → Types
объект Throw extends internal.SymbolTable.ThrowExtractor with java.io.Serializable
Конструктор/экстрактор для Throw экземпляров.
- Definition Classes
- Trees → Trees
объект ThrownException
Извлекает тип брошенного исключения из AnnotationInfo.
Поддерживает как «старые» @throws(classOf[Exception]), так и «новые» @throws[Exception]("cause") аннотации.
- Definition Classes
- AnnotationInfos
объект Try extends internal.SymbolTable.TryExtractor with java.io.Serializable
Конструктор/экстрактор для Try экземпляров.
- Definition Classes
- Trees → Trees
объект TypeApply extends internal.SymbolTable.TypeApplyExtractor with java.io.Serializable
Конструктор/экстрактор для TypeApply экземпляров.
- Definition Classes
- Trees → Trees
объект TypeBounds extends internal.SymbolTable.TypeBoundsExtractor with java.io.Serializable
Конструктор/экстрактор для TypeBounds экземпляров.
- Definition Classes
- Types → Types
объект TypeBoundsTree extends internal.SymbolTable.TypeBoundsTreeExtractor with java.io.Serializable
Конструктор/экстрактор для TypeBoundsTree экземпляров.
- Definition Classes
- Trees → Trees
объект TypeConKind
- Definition Classes
- Kinds
объект TypeDef extends internal.SymbolTable.TypeDefExtractor with java.io.Serializable
Конструктор/экстрактор для TypeDef экземпляров.
- Definition Classes
- Trees → Trees
объект TypeName extends internal.Names.TypeNameExtractor
Конструктор/экстрактор для TypeName экземпляров.
- Definition Classes
- Names → Names
объект TypeRef extends internal.SymbolTable.TypeRefExtractor with java.io.Serializable
Конструктор/экстрактор для TypeRef экземпляров.
- Definition Classes
- Types → Types
объект TypeTree extends internal.SymbolTable.TypeTreeExtractor with java.io.Serializable
Конструктор/экстрактор для TypeTree экземпляров.
- Definition Classes
- Trees → Trees
объект TypeVar extends java.io.Serializable
- Definition Classes
- Types
объект Typed extends internal.SymbolTable.TypedExtractor with java.io.Serializable
Конструктор/экстрактор для Typed экземпляров.
- Definition Classes
- Trees → Trees
объект UnApply extends internal.SymbolTable.UnApplyExtractor with java.io.Serializable
Конструктор/экстрактор для UnApply экземпляров.
- Definition Classes
- Trees → Trees
объект UnmappableAnnotArg extends internal.SymbolTable.ClassfileAnnotArg with Product with Serializable
- Definition Classes
- AnnotationInfos
объект UnmappableAnnotation extends internal.SymbolTable.CompleteAnnotationInfo
- Definition Classes
- AnnotationInfos
объект UnmappableTree extends internal.SymbolTable.Tree with internal.SymbolTable.TermTree with Product with Serializable
- Definition Classes
- Types
объект UseInvokeSpecial extends internal.SymbolTable.PlainAttachment with Product with Serializable
- Определяющие классы
- StdAttachments
объект ValDef extends internal.SymbolTable.ValDefExtractor with java.io.Serializable
Конструктор/экстрактор для экземпляров ValDef.
- Определяющие классы
- Trees → Trees
объект ValOrDefDef
- Определяющие классы
- Trees
объект WildcardType extends internal.SymbolTable.ProtoType with Product with Serializable
Объект, представляющий неизвестный тип, используемый во время вывода типов. Если вы видите WildcardType вне вывода типов, это почти наверняка ошибка.
- Определяющие классы
- Types → Types
объект abstractTypesToBounds extends internal.SymbolTable.TypeMap
Тип со всеми верхнеуровневыми появлениями абстрактных типов, заменёнными их ограничениями
- Определяющие классы
- TypeMaps
объект adaptToNewRunMap extends internal.SymbolTable.TypeMap
- Определяющие классы
- TypeMaps
объект binarynme
Имена двоичных файлов Java, например, scala/runtime/Nothing$.
- Определяющие классы
- StdNames
объект definitions extends internal.SymbolTable.DefinitionsClass
Значение, содержащее все стандартные определения в DefinitionsApi
- Определяющие классы
- Definitions → StandardDefinitions
объект dropIllegalStarTypes extends internal.SymbolTable.TypeMap
Преобразуйте любые типы T* в Seq[T], за исключением случаев использования в позиции параметра метода.
- Определяющие классы
- TypeMaps
объект dropSingletonType extends internal.SymbolTable.TypeMap
Удалить любое появление типа <singleton> из этого типа и его родителей
- Определяющие классы
- TypeMaps
объект fulltpnme extends internal.SymbolTable.TypeNames
Для полных имён типов.
- Определяющие классы
- StdNames
объект inferKind
Начиная с символа (символ) или типа (tpe), вывести род, который его классифицирует (sym.tpeHK/tpe).
- Определяющие классы
- Kinds
объект nme extends internal.SymbolTable.TermNames
- Определяющие классы
- StdNames
объект noPrint extends (internal.SymbolTable.Tree) => Boolean
Вся масса реализационных подробностей — это просто шум, когда вы пытаетесь увидеть, что происходит. Это моя попытка отфильтровать его.
- Определяющие классы
- TypeDebugging
объект noSelfType extends internal.SymbolTable.ValDef with internal.SymbolTable.CannotHaveAttrs
Пустое отложенное определение значения, соответствующее: val _: _ Это используется в качестве заполнителя в параметре шаблон self, если нет определения значения «self» типа «self».
- Определяющие классы
- Trees → Trees
объект normalizeAliases extends internal.SymbolTable.TypeMap
Нормализовать все псевдонимы типов в этом типе (@см. Type#normalize). Обратите внимание, что это сильно зависит от вызова "normalize", а не "dealias", поэтому оно больше не имеет слишком скрытого имени "deAlias".
- Определяющие классы
- TypeMaps
объект pendingSuperCall extends internal.SymbolTable.Apply with internal.SymbolTable.CannotHaveAttrs
Пустой вызов конструктора суперкласса, соответствующий: super.<init>() Это используется в качестве заполнителя в теле основного конструктора в шаблонах классов для обозначения точки вставки вызова конструктора суперкласса после того, как компилятор типов определит суперкласс данного шаблона.
- Определяющие классы
- Trees → Trees
объект perRunCaches
- Определяющие классы
- SymbolTable
объект tpnme extends internal.SymbolTable.TypeNames
- Определяющие классы
- StdNames
объект traceSymbols extends TraceSymbolActivity
- Определяющие классы
- SymbolTable
объект treeInfo extends TreeInfo
- Определяющие классы
- JavaUniverse → SymbolTable
объект typeDebug
Обёртки светлых цветов.
- Определяющие классы
- TypeDebugging
объект typeVarToOriginMap extends internal.SymbolTable.TypeMap
Отображение для преобразования каждого вхождения типа переменной в его источник.
- Определяющие классы
- TypeMaps
объект unwrapToClass extends internal.SymbolTable.ClassUnwrapper
- Определяющие классы
- Types
объект unwrapToStableClass extends internal.SymbolTable.ClassUnwrapper
- Определяющие классы
- Types
объект unwrapWrapperTypes extends internal.SymbolTable.TypeUnwrapper
- Определяющие классы
- Types
объект wildcardExtrapolation extends internal.SymbolTable.VariancedTypeMap
Удалите BoundedWildcardType, где это позволяет вариативность. Неизменяемо: wildcardExtrapolation(tp) =:= tp
Например, MethodType, задаваемый def bla(x: (_ >: String)): (_ <: Int), является как подтипом, так и надтипом def bla(x: String): Int.
- Определяющие классы
- TypeMaps
объект wildcardToTypeVarMap extends internal.SymbolTable.TypeMap
Отображение для преобразования каждого вхождения типа дикого символа в свежую переменную типа
- Определяющие классы
- TypeMaps
© 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/runtime/JavaUniverse.html
Реализация scala.reflect.api.Universe для рефлексии во время выполнения с использованием загрузчиков классов JVM.
Не следует создавать экземпляры напрямую, используйте scala.reflect.runtime.universe вместо этого.