Аннотация scala.reflect.api.Internals.FreeTypeSymbol
abstract type FreeTypeSymbol >: Null <: Universe.FreeTypeSymbolApi with Universe.TypeSymbol
Типовые члены
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
абстрактный def typeSignatureIn(site: Universe.Type): Universe.Type
абстрактный def allOverriddenSymbols: List[Universe.Symbol]
абстрактный 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
Тип свободных типов, введённых при реификации.