Spec-Zone.ru › Scala 2.13 Reflection

Аннотация scala.reflect.api.Internals.FreeTypeSymbol

abstract type FreeTypeSymbol >: Null <: Universe.FreeTypeSymbolApi with Universe.TypeSymbol

Тип свободных типов, введённых при реификации.

Source
Internals.scala
Линейные супертипы
<notype>, <notype>, Universe.FreeTypeSymbolApi, Universe.TypeSymbolApi, Universe.SymbolApi, AnyRef, Any

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

final type NameType = Universe.TypeName

Типовые символы имеют имена типа TypeName.

Определяющие классы
TypeSymbolApi → SymbolApi

Члены-значения абстрактного типа

абстрактный def alternatives: List[Universe.Symbol]

Перегрузки этого символа.

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

абстрактный def annotations: List[Universe.Annotation]

Список аннотаций, присоединённых к этому символу.

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

абстрактный def companion: Universe.Symbol

Для класса: его компаньон-объект, если он существует. Для модуля или класса модуля: компаньон-класс модуля, если он существует. Для пакета или класса пакета: NoSymbol. Для всех остальных: NoSymbol.

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

абстрактный def filter(cond: (Universe.Symbol) => Boolean): Universe.Symbol

Фильтрация базовых альтернатив (или списка из одного элемента, содержащего сам символ, если символ не перегружен). Возвращает перегруженный символ, если есть несколько совпадений. Возвращает NoSymbol, если совпадений нет.

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

абстрактный def fullName: String

Кодированное полное имя пути этого символа, где внешние и внутренние имена разделены точками.

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

абстрактный def info: Universe.Type

Подпись типа этого символа.

Этот метод всегда возвращает подписи наиболее общим способом, даже если базовый символ получен из экземпляра обобщённого типа. Например, подпись метода def map[B](f: (A) => B): List[B], который относится к параметру типа A объявляющего класса List[A], всегда будет содержать A, независимо от того, загружен ли map из List[_] или из List[Int]. Чтобы получить подпись с соответствующим параметром типа, нужно использовать infoIn.

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

абстрактный def infoIn(site: Universe.Type): Universe.Type

Подпись типа этого символа, рассматриваемого как член заданного типа site.

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

абстрактный def isAbstract: Boolean

Является ли этот символ абстрактным (т.е. абстрактный класс, абстрактный метод, значение или член типа)?

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

абстрактный def isAbstractOverride: Boolean

Отмечен ли этот символ как «абстрактный переопределённый»?

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

абстрактный def isAliasType: Boolean

Представляет ли этот символ определение псевдонима типа?

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

абстрактный def isConstructor: Boolean

Представляет ли этот метод конструктор?

Если owner является классом, это обычный конструктор JVM. Если owner является траитом, это конструктор миксина.

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

абстрактный def isContravariant: Boolean

Является ли параметр типа, представленный этим символом, контравариантным?

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

абстрактный def isCovariant: Boolean

Является ли параметр типа, представленный этим символом, ковариантным?

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

абстрактный def isExistential: Boolean

Представляет ли этот символ существовательно связанный тип?

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

абстрактный def isFinal: Boolean

Является ли этот символ финальным?

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

abstract def isImplementationArtifact: Boolean

Представляет ли этот символ артефакт реализации, который не предназначен для публичного использования? Примерами таких артефактов являются мосты стирания и внешние поля.

Definition Classes
SymbolApi

abstract def isImplicit: Boolean

Представляет ли этот символ неявное значение, определение, класс или параметр?

Definition Classes
SymbolApi

abstract def isJava: Boolean

Определен ли этот символ Java?

Definition Classes
SymbolApi

abstract def isJavaAnnotation: Boolean

Представляет ли этот символ интерфейс аннотации Java?

Definition Classes
SymbolApi

abstract def isJavaEnum: Boolean

Представляет ли этот символ класс перечисления Java или значение перечисления Java?

Definition Classes
SymbolApi

abstract def isMacro: Boolean

Является ли этот символ макросом?

Definition Classes
SymbolApi

abstract def isPackage: Boolean

Представляет ли этот символ определение пакета? Известные проблемы: https://github.com/scala/bug/issues/6732.

Definition Classes
SymbolApi

abstract def isPackageClass: Boolean

Представляет ли этот символ класс пакета? Если да, то isClass также гарантированно будет истинным.

Definition Classes
SymbolApi

abstract def isParameter: Boolean

Является ли этот символ параметром (параметром метода или параметром типа)?

Definition Classes
SymbolApi

abstract def isPrivate: Boolean

Представляет ли этот символ закрытое объявление или определение? Если да, то privateWithin может рассказать больше о области видимости этого символа.

Definition Classes
SymbolApi

abstract def isPrivateThis: Boolean

Представляет ли этот символ объявление или определение, написанное в исходном файле как private[this] или сгенерированное в виде дерева/символа с комбинацией флагов LOCAL и PRIVATE? Если да, то isPrivate гарантированно будет истинным.

Definition Classes
SymbolApi

abstract def isProtected: Boolean

Представляет ли этот символ защищенное объявление или определение? Если да, то privateWithin может рассказать больше о области видимости этого символа.

Definition Classes
SymbolApi

abstract def isProtectedThis: Boolean

Представляет ли этот символ объявление или определение, написанное в исходном файле как protected[this] или сгенерированное в виде дерева/символа с комбинацией флагов LOCAL и PROTECTED? Если да, то isProtected гарантированно будет истинным.

Definition Classes
SymbolApi

abstract def isPublic: Boolean

Представляет ли этот символ публичное объявление или определение?

Definition Classes
SymbolApi

abstract def isSpecialized: Boolean

Является ли этот символ специализированным параметром типа или сгенерированным специализированным членом?

Definition Classes
SymbolApi

abstract def isStatic: Boolean

Является ли этот символ статическим (т.е. без внешнего экземпляра)? В: Когда именно сим отмечается как STATIC? О: Если это член глобального объекта, или объекта, содержащегося в глобальном объекте, или на любом количестве уровней вглубь. http://groups.google.com/group/scala-internals/browse_thread/thread/d385bcd60b08faf6

Definition Classes
SymbolApi

abstract def isSynthetic: Boolean

Представляет ли этот символ синтетический элемент (например, сгенерированный компилятором)? Примеры синтетических элементов — аксессоры для vals и vars.

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

абстрактный def map(f: (Universe.Symbol) => Universe.Symbol): Universe.Symbol

Если это NoSymbol, возвращает NoSymbol, в противном случае возвращает результат применения f к этому символу.

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

абстрактный def name: Symbols.Symbol.NameType

Имя символа как члена типа Name.

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

абстрактный def orElse(alt: => Universe.Symbol): Universe.Symbol

Предоставляет альтернативный символ, если текущий — NoSymbol.

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

абстрактный def origin: String

Место создания этого символа.

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

абстрактный def overrides: List[Universe.Symbol]

Возвращает все символы, переопределенные этим символом.

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

абстрактный def owner: Universe.Symbol

Владелец этого символа. Это символ, который напрямую содержит определение текущего символа. Символ NoSymbol не имеет владельца, и вызов этого метода на нем вызывает внутреннюю ошибку. Владелец корневого класса Scala scala.reflect.api.Mirror.RootClass и корневого объекта Scala scala.reflect.api.Mirror.RootPackage — NoSymbol. Каждый другой символ имеет цепочку владельцев, которая заканчивается в scala.reflect.api.Mirror.RootClass.

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

абстрактный def pos: Universe.Position

Позиция дерева.

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

абстрактный def privateWithin: Universe.Symbol

Устанавливается, когда символ имеет модификатор вида private[X] или protected[X], иначе NoSymbol.

Кодирование уровня доступа: существуют три флага Scala (PRIVATE, PROTECTED и LOCAL), которые комбинируются со значением privateWithin ( «foo» в private[foo]), чтобы определить, откуда можно получить доступ к сущности. Значения следующие:

Доступ PRIVATE ограничен только классом. Доступ PROTECTED ограничен только классом и его подклассами. LOCAL может быть установлен только совместно с PRIVATE или PROTECTED. Это дополнительно ограничивает доступ к тому же экземпляру объекта.

Кроме того, privateWithin может использоваться для установки барьера видимости. При установке всё, что содержится в указанном вложенном пакете или классе, имеет доступ. Он несовместим с PRIVATE или LOCAL, но аддитивен к PROTECTED (т.е. если доступ разрешен либо флагами, либо privateWithin, то он разрешен).

Java-уровни доступа преобразуются следующим образом:

java private: isPrivate && (privateWithin == NoSymbol) java package: !isPrivate && !isProtected && (privateWithin == enclosingPackage) java protected: isProtected && (privateWithin == enclosingPackage) java public: !isPrivate && !isProtected && (privateWithin == NoSymbol)

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

абстрактный def suchThat(cond: (Universe.Symbol) => Boolean): Universe.Symbol

Делает то же самое, что и filter, но аварийно завершается, если совпадений несколько.

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

абстрактный def toType: Universe.Type

Ссылка на тип, который ссылается на этот символ типа. Обратите внимание, если символ является членом класса, то почти всегда интересует asTypeIn с типом места вместо него.

Пример: Учитывая объявление класса class C[T] { ... } , который генерирует символ C. Тогда C.toType — это тип C[T].

В противоположность этому, C.info будет иметь тип сигнатуры PolyType(ClassInfoType(...)), который описывает параметры типа, параметры значения, родительские типы и члены C.

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

абстрактный def toTypeConstructor: Universe.Type

Конструктор типа, соответствующий этому символу типа. Это отличается от toType тем, что параметры типа являются частью результатов toType, но не toTypeConstructor.

Пример: Учитывая объявление класса class C[T] { ... } , который генерирует символ C. Тогда C.toType — это тип C[T], но C.toTypeConstructor — это C.

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

абстрактный def toTypeIn(site: Universe.Type): Universe.Type

Ссылка на тип, который ссылается на этот символ типа, рассматриваемый как член данного типа site.

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

абстрактный def typeParams: List[Universe.Symbol]

Для полиморфного типа — его параметры типа, пустой список для всех остальных типов.

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

абстрактный def typeSignature: Universe.Type

Определяющие классы
SymbolApi
См. также

info

абстрактный def typeSignatureIn(site: Universe.Type): Universe.Type

Определяющие классы
SymbolApi
См. также

infoIn

абстрактный def allOverriddenSymbols: List[Universe.Symbol]

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устаревшее

(С версии 2.11.0) используйте overrides вместо

См. также

overrides

абстрактный def associatedFile: AbstractFile

Файл источника, если этот символ создан во время выполнения этой компиляции, или файл класса, если этот символ загружен из *.class или *.jar.

Возвращаемый тип — scala.reflect.io.AbstractFile, который относится к экспериментальной части Scala reflection. Не следует использовать, если вы не знаете, что делаете. В последующих версиях этот API будет доработан и представлен как часть scala.reflect.api.

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устаревшее

(С версии 2.11.0) используйте pos.source.file вместо

абстрактный def companionSymbol: Universe.Symbol

Для класса: модуль или фабрика case-класса с тем же именем в том же пакете. Для модуля: класс с тем же именем в том же пакете. Для всех остальных: NoSymbol.

Этот API может возвращать неожиданные результаты для модульных классов, пакетов и пакетов-классов. Используйте companion вместо, чтобы получить предсказуемые результаты.

Определяющие классы
SymbolApi
Аннотации
@deprecated
Устаревшее

(С версии 2.11.0) используйте companion вместо, но будьте внимательны к возможным изменениям в поведении

абстрактный def isAbstractType: Boolean

Представляет ли этот символ определение абстрактного типа?

Определяющие классы
TypeSymbolApi
Аннотации
@deprecated
Устаревшее

(С версии 2.11.0) используйте isAbstract вместо

Члены конкретных значений

final def !=(arg0: Any): Boolean

Definition Classes
AnyRef → Any

final def ##(): Int

Definition Classes
AnyRef → Any

final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any

def asClass: Universe.ClassSymbol

Этот символ преобразован в ClassSymbol, представляющий класс или трайт.

Definition Classes
SymbolApi
Исключения

ScalaReflectionException, если isClass равно false.

final def asInstanceOf[T0]: T0

Definition Classes
Any

def asMethod: Universe.MethodSymbol

Этот символ преобразован в MethodSymbol.

Definition Classes
SymbolApi
Исключения

ScalaReflectionException, если isMethod равно false.

def asModule: Universe.ModuleSymbol

Этот символ преобразован в ModuleSymbol, определённый в объекте.

Definition Classes
SymbolApi
Исключения

ScalaReflectionException, если isModule равно false.

def asTerm: Universe.TermSymbol

Этот символ преобразован в TermSymbol.

Definition Classes
SymbolApi
Исключения

ScalaReflectionException, если isTerm равно false.

final def asType: Universe.TypeSymbol

Этот символ преобразован в TypeSymbol.

Definition Classes
TypeSymbolApi → SymbolApi
Исключения

ScalaReflectionException, если isType равно false.

def clone(): AnyRef

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.CloneNotSupportedException]) @native()

final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef

def equals(arg0: AnyRef): Boolean

Definition Classes
AnyRef → Any

def finalize(): Unit

Attributes
protected[java.lang]
Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.Throwable])

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

Definition Classes
AnyRef → Any
Annotations
@native()

def hashCode(): Int

Definition Classes
AnyRef → Any
Annotations
@native()

def isClass: Boolean

Представляет ли этот символ определение класса или трайта? Если да, isType также гарантированно истинно.

Definition Classes
SymbolApi

final def isInstanceOf[T0]: Boolean

Definition Classes
Any

def isMethod: Boolean

Представляет ли этот символ определение метода? Если да, isTerm также гарантированно истинно.

Definition Classes
SymbolApi

def isModule: Boolean

Представляет ли этот символ определение модуля (т.е. получен ли он из определения объекта)? Если да, то isTerm также гарантированно будет истинным.

Definition Classes
SymbolApi

def isModuleClass: Boolean

Представляет ли этот символ определение класса, неявным образом связанного с определением объекта (класс модуля в терминологии компилятора Scala)? Если да, то isType также гарантированно будет истинным.

Definition Classes
SymbolApi

def isOverloadedMethod: Boolean

Используется для предоставления более информативного сообщения об ошибке для asMethod.

Attributes
protected
Definition Classes
SymbolApi

def isTerm: Boolean

Представляет ли этот символ определение термина? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm является истинным, либо sym.isType является истинным.

Definition Classes
SymbolApi

final def isType: Boolean

Представляет ли этот символ определение типа? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm является истинным, либо sym.isType является истинным.

Definition Classes
TypeSymbolApi → SymbolApi

final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef

final def notify(): Unit

Definition Classes
AnyRef
Annotations
@native()

final def notifyAll(): Unit

Definition Classes
AnyRef
Annotations
@native()

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

Definition Classes
AnyRef

def toString(): String

Definition Classes
AnyRef → Any

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

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

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

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

Spec-Zone.ru

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