Spec-Zone.ru › Scala 2.13 Reflection

Класс scala.reflect.runtime.JavaUniverse

класс JavaUniverse extends internal.SymbolTable с JavaUniverseForce с ReflectSetup с SymbolTable

Реализация scala.reflect.api.Universe для рефлексии во время выполнения с использованием загрузчиков классов JVM.

Не следует создавать экземпляры напрямую, используйте scala.reflect.runtime.universe вместо этого.

Тип самого себя
JavaUniverse
Источник
JavaUniverse.scala
Линейные супертипы
SymbolTable, runtime.ThreadLocalStorage, Gil, SynchronizedOps, SynchronizedTypes, SynchronizedSymbols, SymbolLoaders, JavaMirrors, TwoWayCaches, api.JavaUniverse, ReflectSetup, JavaUniverseForce, internal.SymbolTable, Reporting, Internals, FreshNames, Translations, PrivateWithin, ReificationSupport, StdCreators, StdAttachments, CapturedVariables, Importers, TypeDebugging, Positions, Printers, Trees, AnnotationCheckers, AnnotationInfos, StdNames, Transforms, InfoTransformers, BaseTypeSeqs, Constants, Definitions, Mirrors, Scopes, FlagSets, ExistentialsAndSkolems, Kinds, Variances, Types, internal.tpe.FindMembers, TypeConstraints, TypeMaps, GlbLubs, CommonOwners, TypeToStrings, TypeComparers, Symbols, Names, Collections, Universe, Universe, Internals, Quasiquotes, Liftables, Printers, Mirrors, StandardLiftables, StandardNames, StandardDefinitions, ImplicitTags, TypeTags, Exprs, Positions, Annotations, Constants, Trees, Names, Scopes, FlagSets, Types, Symbols, AnyRef, Any

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

новый 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

API экземпляров Constant.

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

абстрактный класс 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.

Определяющие классы
Квазицитаты
См. также

http://docs.scala-lang.org/overviews/quasiquotes/intro.html

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

scala.reflect.api.TypeTags

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

scala.reflect.api.TypeTags

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
См. также

InternalApi

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

appliedType

def appliedType(tycon: Type, args: Type*): Type

Definition Classes
Types → Types
See also

appliedType

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
См. также

InternalApi

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

Spec-Zone.ru

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