Трейт scala.reflect.api.Internals.FreeTypeSymbolApi
trait FreeTypeSymbolApi extends Universe.TypeSymbolApi
Типовые члены
final type NameType = Universe.TypeName
Символы типов имеют свои имена типа TypeName.
- Определяющие классы
- TypeSymbolApi → SymbolApi
Члены абстрактных значений
abstract def alternatives: List[Universe.Symbol]
Перегруженные альтернативы этого символа.
- Definition Classes
- SymbolApi
abstract def annotations: List[Universe.Annotation]
Список аннотаций, прикреплённых к этому символу.
- Definition Classes
- SymbolApi
abstract def companion: Universe.Symbol
Для класса: его компаньон-объект, если он существует. Для модуля или модульного класса: компаньон-класс модуля, если он существует. Для пакета или класса пакета: NoSymbol. Для всех остальных: NoSymbol.
- Definition Classes
- SymbolApi
abstract def filter(cond: (Universe.Symbol) => Boolean): Universe.Symbol
Фильтры базовые альтернативы (или список с одним элементом, состоящим из самого символа, если символ не перегружен). Возвращает перегруженный символ, если есть несколько совпадений. Возвращает NoSymbol, если совпадений нет.
- Definition Classes
- SymbolApi
abstract def fullName: String
Кодированное полное имя пути этого символа, где внешние и внутренние имена разделены точками.
- Definition Classes
- SymbolApi
abstract def info: Universe.Type
Подпись типа этого символа.
Этот метод всегда возвращает подписи наиболее обобщённым способом, даже если базовый символ получен из экземпляра обобщённого типа. Например, подпись метода def map[B](f: (A) => B): List[B], который относится к параметру типа A объявляющего класса List[A], всегда будет содержать A, независимо от того, загружается ли map из List[_] или из List[Int]. Чтобы получить подпись с соответствующими параметрами типов, следует использовать infoIn.
- Definition Classes
- SymbolApi
abstract def infoIn(site: Universe.Type): Universe.Type
Подпись типа этого символа, рассматриваемого как член данного типа site.
- Definition Classes
- SymbolApi
abstract def isAbstract: Boolean
Является ли этот символ абстрактным (т.е. абстрактный класс, абстрактный метод, значение или член типа)?
- Definition Classes
- SymbolApi
abstract def isAbstractOverride: Boolean
Отмечен ли этот символ как «абстрактный переопределение»?
- Definition Classes
- SymbolApi
abstract def isAliasType: Boolean
Представляет ли этот символ определение псевдонима типа?
- Definition Classes
- TypeSymbolApi
abstract def isConstructor: Boolean
Представляет ли этот метод конструктор?
Если owner — класс, то это обычный конструктор JVM. Если owner — трайт, то это конструктор миксина.
- Definition Classes
- SymbolApi
abstract def isContravariant: Boolean
Является ли параметр типа, представленный этим символом, контравариантным?
- Definition Classes
- TypeSymbolApi
abstract def isCovariant: Boolean
Является ли параметр типа, представленный этим символом, ковариантным?
- Definition Classes
- TypeSymbolApi
abstract def isExistential: Boolean
Представляет ли этот символ экзистенциально связанный тип?
- Definition Classes
- TypeSymbolApi
abstract def isFinal: Boolean
Является ли этот символ финальным?
- Definition Classes
- 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
Является ли этот символ статическим (т.е. без внешнего экземпляра)? В: Когда точно sym отмечается как STATIC? Ответ: Если это член верхнеуровневого объекта, или объекта, содержащегося в верхнеуровневом объекте, или на любом количестве уровней вглубь. http://groups.google.com/group/scala-internals/browse_thread/thread/d385bcd60b08faf6
- Definition Classes
- SymbolApi
abstract def isSynthetic: Boolean
Представляет ли этот символ синтетический (т.е. сгенерированный компилятором) сущность? Примеры синтетических сущностей — это аксессоры для значений vals и vars.
- Definition Classes
- SymbolApi
abstract def map(f: (Universe.Symbol) => Universe.Symbol): Universe.Symbol
Если это NoSymbol, возвращает NoSymbol, в противном случае возвращает результат применения f к этому символу.
- Definition Classes
- SymbolApi
abstract def name: FreeTypeSymbol.NameType
Имя символа как члена типа Name.
- Definition Classes
- SymbolApi
abstract def orElse(alt: => Universe.Symbol): Universe.Symbol
Предоставляет альтернативу, если символ является NoSymbol.
- Definition Classes
- SymbolApi
abstract def origin: String
abstract def overrides: List[Universe.Symbol]
Возвращает все символы, переопределяемые этим символом.
- Definition Classes
- SymbolApi
abstract def owner: Universe.Symbol
Владелец этого символа. Это символ, который непосредственно содержит определение текущего символа. У символа NoSymbol нет владельца, и вызов этого метода для него вызывает внутреннюю ошибку. Владелец корневого класса Scala scala.reflect.api.Mirror.RootClass и корневого объекта Scala scala.reflect.api.Mirror.RootPackage — это NoSymbol. Каждый другой символ имеет цепочку владельцев, которая заканчивается на scala.reflect.api.Mirror.RootClass.
- Definition Classes
- SymbolApi
abstract def pos: Universe.Position
Позиция дерева.
- Definition Classes
- SymbolApi
abstract 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)
- Definition Classes
- SymbolApi
abstract def suchThat(cond: (Universe.Symbol) => Boolean): Universe.Symbol
Выполняет то же, что и filter, но аварийно завершает работу, если совпадений несколько.
- Definition Classes
- SymbolApi
abstract def toType: Universe.Type
Ссылка на тип, который ссылается на этот символ типа. Обратите внимание, если символ является членом класса, часто интересует asTypeIn со ссылочным типом вместо.
Пример: Приведенное объявление класса class C[T] { ... } , которое генерирует символ C. Тогда C.toType - это тип C[T].
В отличие от C.info, это сигнатура типа PolyType(ClassInfoType(...)), которая описывает типы параметров, параметры значений, родительские типы и члены C.
- Definition Classes
- TypeSymbolApi
abstract def toTypeConstructor: Universe.Type
Конструктор типа, соответствующий этому символу типа. Это отличается от toType тем, что типы параметров являются частью результатов toType, но не toTypeConstructor.
Пример: Приведенное объявление класса class C[T] { ... } , которое генерирует символ C. Тогда C.toType - это тип C[T], но C.toTypeConstructor - C.
- Definition Classes
- 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 вместо этого
Члены-значения Concrete
final def !=(arg0: Any): Boolean
- Определения классов
- AnyRef → Any
final def ##(): Int
- Определения классов
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен неявным преобразованием из Universe.FreeTypeSymbolApi вany2stringadd[Universe.FreeTypeSymbolApi] при помощи метода any2stringadd в scala.Predef.
- Определения классов
- any2stringadd
def ->[B](y: B): (Universe.FreeTypeSymbolApi, B)
- Неявный
- Этот член добавлен неявным преобразованием из Universe.FreeTypeSymbolApi вArrowAssoc[Universe.FreeTypeSymbolApi] при помощи метода ArrowAssoc в scala.Predef.
- Определения классов
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
- Определения классов
- AnyRef → Any
def asClass: Universe.ClassSymbol
Этот символ приведён к типу ClassSymbol, представляющему класс или тракт.
- Определения классов
- SymbolApi
- Исключения
ScalaReflectionExceptionеслиisClassравно false.
final def asInstanceOf[T0]: T0
- Определения классов
- Any
def asMethod: Universe.MethodSymbol
Этот символ приведён к типу MethodSymbol.
- Определения классов
- SymbolApi
- Исключения
ScalaReflectionExceptionеслиisMethodравно false.
def asModule: Universe.ModuleSymbol
Этот символ приведён к типу ModuleSymbol, определённому с помощью определения объекта.
- Определения классов
- SymbolApi
- Исключения
ScalaReflectionExceptionеслиisModuleравно false.
def asTerm: Universe.TermSymbol
Этот символ приведён к типу TermSymbol.
- Определения классов
- SymbolApi
- Исключения
ScalaReflectionExceptionеслиisTermравно false.
final def asType: Universe.TypeSymbol
Этот символ приведён к типу TypeSymbol.
- Определения классов
- TypeSymbolApi → SymbolApi
- Исключения
ScalaReflectionExceptionеслиisTypeравно false.
def clone(): AnyRef
- Атрибуты
- protected[java.lang]
- Определения классов
- AnyRef
- Аннотации
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
def ensuring(cond: (Universe.FreeTypeSymbolApi) => Boolean, msg: => Any): Universe.FreeTypeSymbolApi
- Неявный
- Этот член добавлен неявным преобразованием из Universe.FreeTypeSymbolApi вEnsuring[Universe.FreeTypeSymbolApi] при помощи метода Ensuring в scala.Predef.
- Определения классов
- Ensuring
def ensuring(cond: (Universe.FreeTypeSymbolApi) => Boolean): Universe.FreeTypeSymbolApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.FreeTypeSymbolApi вEnsuring[Universe.FreeTypeSymbolApi] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: Boolean, msg: => Any): Universe.FreeTypeSymbolApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.FreeTypeSymbolApi вEnsuring[Universe.FreeTypeSymbolApi] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
def ensuring(cond: Boolean): Universe.FreeTypeSymbolApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.FreeTypeSymbolApi вEnsuring[Universe.FreeTypeSymbolApi] с помощью метода Ensuring в scala.Predef.
- Классы определений
- Ensuring
final def eq(arg0: AnyRef): Boolean
- Классы определений
- AnyRef
def equals(arg0: AnyRef): Boolean
- Классы определений
- AnyRef → Any
def finalize(): Unit
- Атрибуты
- protected[java.lang]
- Классы определений
- AnyRef
- Аннотации
- @throws(classOf[java.lang.Throwable])
def formatted(fmtstr: String): String
- Неявный
- Этот член добавлен с помощью неявного преобразования из Universe.FreeTypeSymbolApi вStringFormat[Universe.FreeTypeSymbolApi] с помощью метода StringFormat в scala.Predef.
- Классы определений
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
- Классы определений
- AnyRef → Any
- Аннотации
- @native()
def hashCode(): Int
- Классы определений
- AnyRef → Any
- Аннотации
- @native()
def isClass: Boolean
Представляет ли этот символ определение класса или тракта? Если да, isType также гарантированно будет истинным.
- Классы определений
- SymbolApi
final def isInstanceOf[T0]: Boolean
- Классы определений
- Any
def isMethod: Boolean
Представляет ли этот символ определение метода? Если да, isTerm также гарантированно будет истинным.
- Классы определений
- SymbolApi
def isModule: Boolean
Представляет ли этот символ определение модуля (т.е. получено из определения объекта)? Если да, isTerm также гарантированно будет истинным.
- Классы определений
- SymbolApi
def isModuleClass: Boolean
Представляет ли этот символ определение класса, неявно связанного с определением объекта (класс модуля в терминологии компилятора Scala)? Если да, isType также гарантированно будет истинным.
- Классы определений
- SymbolApi
def isOverloadedMethod: Boolean
Используется для предоставления более информативного сообщения об ошибке для asMethod.
- Атрибуты
- protected
- Определяющие классы
- SymbolApi
def isTerm: Boolean
Представляет ли этот символ определение термина? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm истинно, либо sym.isType истинно.
- Определяющие классы
- SymbolApi
final def isType: Boolean
Представляет ли этот символ определение типа? Обратите внимание, что каждый символ является либо термином, либо типом. Таким образом, для каждого символа sym (за исключением NoSymbol) либо sym.isTerm истинно, либо sym.isType истинно.
- Определяющие классы
- TypeSymbolApi → SymbolApi
final def ne(arg0: AnyRef): Boolean
- Определяющие классы
- AnyRef
final def notify(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @native()
final def notifyAll(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @native()
final def synchronized[T0](arg0: => T0): T0
- Определяющие классы
- AnyRef
def toString(): String
- Определяющие классы
- AnyRef → Any
final def wait(): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long, arg1: Int): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException])
final def wait(arg0: Long): Unit
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.InterruptedException]) @native()
© 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$FreeTypeSymbolApi.html
API свободных типов символов. Основным источником информации о символах является страница Symbols.
$SYMACCESSORS