Трейт scala.reflect.macros.Universe.MacroInternalApi
трейт MacroInternalApi extends InternalApi
Члены типов
трейтDecoratorApi extends AnyRef
- Определяющие классы
- InternalApi
- См. также
абстрактный типDecorators <: MacroDecoratorApi
Синтаксические удобства для дополнительных внутренних API для деревьев, символов и типов
- Определяющие классы
- MacroInternalApi → InternalApi
трейтMacroDecoratorApi extends DecoratorApi
Абстрактные члены значений
abstract def annotatedType(annotations: List[Universe.Annotation], underlying: Universe.Type): Universe.AnnotatedType
Создатель типов AnnotatedType.
- Definition Classes
- InternalApi
abstract def asFreeTerm(symbol: Universe.Symbol): Universe.FreeTermSymbol
Преобразование этого символа в символ свободного термина.
- Definition Classes
- InternalApi
- Исключения
ScalaReflectionExceptionеслиisFreeTermложно.
abstract def asFreeType(symbol: Universe.Symbol): Universe.FreeTypeSymbol
Преобразование этого символа в символ свободного типа.
- Definition Classes
- InternalApi
- Исключения
ScalaReflectionExceptionеслиisFreeTypeложно.
abstract def attachments(tree: Universe.Tree): Attachments { type Pos = Universe.this.Position }
abstract def attachments(symbol: Universe.Symbol): Attachments { type Pos = Universe.this.Position }
abstract def boundedWildcardType(bounds: Universe.TypeBounds): Universe.BoundedWildcardType
Создатель типов BoundedWildcardType.
- Definition Classes
- InternalApi
abstract def captureVariable(vble: Universe.Symbol): Unit
Отметить переменную как захваченную; т.е. принудительно выполнить упаковку в тип *Ref.
abstract def capturedVariableType(vble: Universe.Symbol): Universe.Type
abstract def changeOwner(tree: Universe.Tree, prev: Universe.Symbol, next: Universe.Symbol): tree.type
Собирает все символы, определённые поддеревьями tree, которые принадлежат prev, и затем изменяет их владельца на next.
Это важный инструмент для борьбы с ошибками цепочки владельцев при перемещении деревьев из одного лексического контекста в другой. Всякий раз, когда вы берёте атрибутированное дерево, которое было проверено на тип в контексте, принадлежащем какому-либо символу (назовём его x), и вставляете его в другое место, в контекст, принадлежащий другому символу (назовём его y), крайне важно, либо вызвать untypecheck, или выполнить changeOwner(tree, x, y).
Поскольку в данный момент untypecheck имеет фундаментальную проблему, которая иногда может привести к повреждению дерева, changeOwner становится незаменимым инструментом для построения 100% надёжных макросов. Будущие версии API отражения могут устранить необходимость заботы об этих низкоуровневых деталях, но на данный момент вот что у нас есть.
abstract def classDef(sym: Universe.Symbol, impl: Universe.Template): Universe.ClassDef
Метод-фабрика для узлов ClassDef.
- Definition Classes
- InternalApi
abstract def classInfoType(parents: List[Universe.Type], decls: Universe.Scope, typeSymbol: Universe.Symbol): Universe.ClassInfoType
Создатель типов ClassInfoType.
- Definition Classes
- InternalApi
abstract def constantType(value: Universe.Constant): Universe.ConstantType
Создатель для типов ConstantType.
- Definition Classes
- InternalApi
abstract def createImporter(from0: api.Universe): Universe.Importer { val from: from0.type }
Создает импортер, который перемещает артефакты отражения между вселенными.
- Definition Classes
- InternalApi
- See also
abstract def deSkolemize(symbol: Universe.Symbol): Universe.Symbol
Если этот символ является склемом, его соответствующий типовой параметр, в противном случае сам символ.
Цитируя Мартина Одерски, склемы — это синтетические типы «констант», которые являются копиями экзистенциально связанных или универсально связанных типовых переменных. Например, если вы находитесь внутри правой части метода:
def foo[T](x: T) = ... foo[List[T]]....
склем с именем T ссылается на неизвестный тип экземпляра T при вызове foo. Он должен отличаться от типового параметра, потому что в рекурсивном вызове, как в примере foo[List[T]] выше, типовой параметр заменяется на List[T], но типовой склем остается тем, что он есть.
Другой формой склема является экзистенциальный склем. Допустим, у вас есть функция
def bar(xs: List[T] forSome { type T }) = xs.head
тогда каждое вхождение xs справа будет иметь тип List[T'], где T' — это свежая копия T.
- Definition Classes
- InternalApi
abstract val decorators: Decorators
- Definition Classes
- InternalApi
- See also
abstract def defDef(sym: Universe.Symbol, rhs: (List[List[Universe.Symbol]]) => Universe.Tree): Universe.DefDef
Фабричный метод для узлов DefDef.
- Definition Classes
- InternalApi
abstract def defDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.DefDef
Фабричный метод для узлов DefDef.
- Definition Classes
- InternalApi
abstract def defDef(sym: Universe.Symbol, mods: Universe.Modifiers, rhs: Universe.Tree): Universe.DefDef
Фабричный метод для узлов DefDef.
- Definition Classes
- InternalApi
abstract def defDef(sym: Universe.Symbol, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef
Фабричный метод для узлов DefDef.
- Definition Classes
- InternalApi
abstract def defDef(sym: Universe.Symbol, mods: Universe.Modifiers, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef
Фабричный метод для узлов DefDef.
- Definition Classes
- InternalApi
abstract def defineType(tree: Universe.Tree, tp: Universe.Type): tree.type
Подобно setType, но если это ранее пустой TypeTree, этот факт запоминается, чтобы untypecheck вернулось к исходному состоянию.
\@PP: Попытка уточнить вышесказанное: Если вызов defineType производится на TypeTree, у которого поле type равно null или NoType, это записывается как "wasEmpty = true". Это значение используется в ResetAttrsTraverser, который обнуляет поле type TypeTree, для которых wasEmpty равно true, оставив другие неизменными.
untypecheck (или resetAttrs в терминологии компилятора) используется в ситуациях, когда происходит какая-то спекулятивная типизация дерева, которая терпит неудачу, и дерево нужно вернуть в первоначальное состояние, чтобы попробовать снова. Таким образом, по моему мнению: использование defineType вместо setType – это способ указать, что устанавливаемый тип не зависит от предыдущего состояния, и поэтому должен быть отброшен, если текущий путь поиска типа не удается.
abstract def enter(scope: Universe.Scope, sym: Universe.Symbol): scope.type
abstract def existentialAbstraction(tparams: List[Universe.Symbol], tpe0: Universe.Type): Universe.Type
Создатель для экзистенциальных типов. Это генерирует:
tpe1 where { tparams }
где tpe1 является результатом экстраполяции tpe относительно tparams. Экстраполяция означает, что переменные типа в tparams, встречающиеся в ковариантных позициях, заменяются на верхние границы, (за исключением любых маркеров SingletonClass), переменные типа в tparams, встречающиеся в контравариантных позициях, заменяются на верхние границы, при условии, что полученный тип является законным с точки зрения стабильности и не содержит никаких переменных типа в tparams.
Абстракция отбрасывает все параметры типа, которые не ссылаются непосредственно или косвенно на тип tpe1. Если не осталось параметров типа, просто возвращается тип результата tpe.
- Definition Classes
- InternalApi
abstract def existentialType(quantified: List[Universe.Symbol], underlying: Universe.Type): Universe.ExistentialType
Создатель для типов ExistentialType.
- Definition Classes
- InternalApi
abstract def flags(symbol: Universe.Symbol): Universe.FlagSet
Возвращает внутренние флаги, связанные с символом.
- Definition Classes
- InternalApi
abstract def freeTerms(tree: Universe.Tree): List[Universe.FreeTermSymbol]
Извлекает символы свободных терминов из дерева, которое реифицировано или содержит реифицированные поддеревья.
- Definition Classes
- InternalApi
abstract def freeTypes(tree: Universe.Tree): List[Universe.FreeTypeSymbol]
Извлекает символы свободных типов из дерева, которое реифицировано или содержит реифицированные поддеревья.
- Definition Classes
- InternalApi
abstract def fullyInitialize(scope: Universe.Scope): scope.type
Вызывает initialize для всех символов, из которых состоит область видимости.
- Definition Classes
- InternalApi
abstract def fullyInitialize(tp: Universe.Type): tp.type
Вызывает initialize для всех параметров значения и типа типа.
- Definition Classes
- InternalApi
abstract def fullyInitialize(symbol: Universe.Symbol): symbol.type
Вызывает initialize для владельца и всех параметров значения и типа символа.
- Definition Classes
- InternalApi
abstract val gen: TreeGen
абстрактный метод initialize(символ: Universe.Symbol): symbol.type
Принудительно выполняет все ожидающие завершения, связанные с этим символом. После возвращения этого вызова символ становится неизменяемым и потокобезопасным.
- Определяющие классы
- InternalApi
абстрактный метод intersectionType(tps: Список[Universe.Type], владелец: Universe.Symbol): Universe.Type
Создатель типа пересечения, где пересечения одного типа заменяются самим типом, а повторяющиеся родительские классы объединяются.
!!! Повторяющиеся родительские классы не объединяются - это ошибка в комментарии или в коде?
- Определяющие классы
- InternalApi
абстрактный метод intersectionType(tps: Список[Universe.Type]): Universe.Type
Создатель типа пересечения, где пересечения одного типа заменяются самим типом.
- Определяющие классы
- InternalApi
абстрактный метод isErroneous(символ: Universe.Symbol): Boolean
Представляет ли этот символ или его базовый тип ошибку проверки типов?
- Определяющие классы
- InternalApi
абстрактный метод isFreeTerm(символ: Universe.Symbol): Boolean
Представляет ли этот символ свободный термин, захваченный реификацией? Если да, то isTerm также гарантированно истинно.
- Определяющие классы
- InternalApi
абстрактный метод isFreeType(символ: Universe.Symbol): Boolean
Представляет ли этот символ свободный тип, захваченный реификацией? Если да, то isType также гарантированно истинно.
- Определяющие классы
- InternalApi
абстрактный метод isSkolem(символ: Universe.Symbol): Boolean
Представляет ли этот символ определение сколема? Сколемы используются во время проверки типов для представления параметров типа, рассматриваемых изнутри их областей видимости.
- Определяющие классы
- InternalApi
абстрактный метод labelDef(симв: Universe.Symbol, параметры: Список[Universe.Symbol], правая_часть: Universe.Tree): Universe.LabelDef
Метод-фабрика для узлов LabelDef.
- Определяющие классы
- InternalApi
абстрактный метод methodType(параметры: Список[Universe.Symbol], тип_результата: Universe.Type): Universe.MethodType
Создатель типов MethodType.
- Определяющие классы
- InternalApi
абстрактный метод moduleDef(симв: Universe.Symbol, реализация: Universe.Template): Universe.ModuleDef
Метод-фабрика для узлов ModuleDef.
- Определяющие классы
- InternalApi
абстрактный метод newClassSymbol(владелец: Universe.Symbol, имя: Universe.TypeName, позиция: Universe.Position = NoPosition, флаги: Universe.FlagSet = NoFlags): Universe.ClassSymbol
- Definition Classes
- InternalApi
abstract def newFreeTerm(name: String, value: => Any, flags: Universe.FlagSet = NoFlags, origin: String = null): Universe.FreeTermSymbol
- Definition Classes
- InternalApi
abstract def newFreeType(name: String, flags: Universe.FlagSet = NoFlags, origin: String = null): Universe.FreeTypeSymbol
- Definition Classes
- InternalApi
abstract def newMethodSymbol(owner: Universe.Symbol, name: Universe.TermName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.MethodSymbol
- Definition Classes
- InternalApi
abstract def newModuleAndClassSymbol(owner: Universe.Symbol, name: Universe.Name, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): (Universe.ModuleSymbol, Universe.ClassSymbol)
- Definition Classes
- InternalApi
abstract def newScopeWith(elems: Universe.Symbol*): Universe.Scope
Создать новый область видимости с заданными начальными элементами.
- Definition Classes
- InternalApi
abstract def newTermSymbol(owner: Universe.Symbol, name: Universe.TermName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.TermSymbol
- Definition Classes
- InternalApi
abstract def newTypeSymbol(owner: Universe.Symbol, name: Universe.TypeName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.TypeSymbol
- Definition Classes
- InternalApi
abstract def nullaryMethodType(resultType: Universe.Type): Universe.NullaryMethodType
Создатель для типов NullaryMethodType.
- Definition Classes
- InternalApi
абстрактный def polyType(tparams: List[Universe.Symbol], tpe: Universe.Type): Universe.PolyType
Создатель параметризации типов, удаляющий пустые списки параметров типа. Используйте этот фабричный метод для обозначения того, что тип имеет вид * (это полиморфное значение), пока мы не начнём отслеживать явные виды, эквивалентные typeFun (за исключением того, что последний требует непустого tparams).
- Определяющие классы
- InternalApi
абстрактный def referenceCapturedVariable(vble: Universe.Symbol): Universe.Tree
абстрактный def refinedType(parents: List[Universe.Type], owner: Universe.Symbol, decls: Universe.Scope, pos: Universe.Position): Universe.Type
Создатель для типов RefinedType.
- Определяющие классы
- InternalApi
абстрактный def refinedType(parents: List[Universe.Type], owner: Universe.Symbol, decls: Universe.Scope): Universe.Type
Создатель для типов RefinedType.
- Определяющие классы
- InternalApi
абстрактный def refinedType(parents: List[Universe.Type], owner: Universe.Symbol): Universe.Type
Создатель для типов RefinedType.
- Определяющие классы
- InternalApi
абстрактный def refinedType(parents: List[Universe.Type], decls: Universe.Scope, clazz: Universe.Symbol): Universe.RefinedType
Создатель для типов RefinedType.
- Определяющие классы
- InternalApi
абстрактный def refinedType(parents: List[Universe.Type], decls: Universe.Scope): Universe.RefinedType
Создатель для типов RefinedType.
- Определяющие классы
- InternalApi
абстрактный val reificationSupport: Universe.ReificationSupportApi
Это внутренний модуль реализации.
- Определяющие классы
- InternalApi
абстрактный def removeAttachment[T](tree: Universe.Tree)(implicit arg0: ClassTag[T]): tree.type
Обновление прикрепления с удалённой полезной нагрузкой заданного класса T. Возвращает сам узел.
абстрактный def removeAttachment[T](symbol: Universe.Symbol)(implicit arg0: ClassTag[T]): symbol.type
Обновление прикрепления с удалённой полезной нагрузкой заданного класса T. Возвращает сам символ.
абстрактный метод resetFlag(символ: Universe.Symbol, флаги: Universe.FlagSet): символ.type
абстрактный метод setAnnotations(символ: Universe.Symbol, аннотации: Universe.Annotation*): символ.type
абстрактный метод setFlag(символ: Universe.Symbol, флаги: Universe.FlagSet): символ.type
абстрактный метод setInfo(символ: Universe.Symbol, тип: Universe.Type): символ.type
абстрактный метод setName(символ: Universe.Symbol, имя: Universe.Name): символ.type
абстрактный метод setOriginal(tt: Universe.TypeTree, оригинал: Universe.Tree): Universe.TypeTree
абстрактный метод setOwner(символ: Universe.Symbol, новый_владелец: Universe.Symbol): символ.type
абстрактный метод setPos(дерево: Universe.Tree, новая_позиция: Universe.Position): дерево.type
Устанавливает pos дерева. Возвращает само дерево.
абстрактный метод setPrivateWithin(символ: Universe.Symbol, символ: Universe.Symbol): символ.type
абстрактный метод setSymbol(дерево: Universe.Tree, символ: Universe.Symbol): дерево.type
Устанавливает symbol дерева. Возвращает само дерево.
абстрактный метод setType(дерево: Universe.Tree, тип: Universe.Type): дерево.type
Устанавливает tpe дерева. Возвращает само дерево.
абстрактный метод singleType(префикс: Universe.Type, символ: Universe.Symbol): Universe.Type
Создатель для SingleType типов.
- Definition Classes
- InternalApi
абстрактный метод subpatterns(дерево: Universe.Tree): Вариант[Список[Universe.Tree]]
Возвращает неу типизированный список подпаттернов, прикреплённых к селектору-заглушке узла UnApply. Полезно при написании макросов квазицитирования, которые выполняют сопоставление с образцом.
абстрактный метод substituteSymbols(дерево: Universe.Tree, из: Список[Universe.Symbol], в: Список[Universe.Symbol]): Universe.Tree
Заменяет символы в to на соответствующие вхождения ссылок на символы from в этом типе.
- Definition Classes
- InternalApi
абстрактный метод substituteThis(tree: Universe.Tree, clazz: Universe.Symbol, to: => Universe.Tree): Universe.Tree
Заменить заданное дерево to на вхождения узлов, представляющих C.this, где C относится к заданному классу clazz.
- Определение классов
- InternalApi
абстрактный метод substituteTypes(tree: Universe.Tree, from: List[Universe.Symbol], to: List[Universe.Type]): Universe.Tree
Заменить типы в to на соответствующие вхождения ссылок на символы from в этом дереве.
- Определение классов
- InternalApi
абстрактный метод superType(thistpe: Universe.Type, supertpe: Universe.Type): Universe.Type
Создатель для типов SuperType.
- Определение классов
- InternalApi
абстрактный метод thisType(sym: Universe.Symbol): Universe.Type
Создатель для типов ThisType.
- Определение классов
- InternalApi
абстрактный метод typeBounds(lo: Universe.Type, hi: Universe.Type): Universe.TypeBounds
Создатель для типов TypeBounds.
- Определение классов
- InternalApi
абстрактный метод typeDef(sym: Universe.Symbol): Universe.TypeDef
Метод-фабрика для узлов TypeDef.
- Определение классов
- InternalApi
абстрактный метод typeDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.TypeDef
Метод-фабрика для узлов TypeDef.
- Определение классов
- InternalApi
абстрактный метод typeRef(pre: Universe.Type, sym: Universe.Symbol, args: List[Universe.Type]): Universe.Type
Создатель для типов TypeRef.
- Определение классов
- InternalApi
абстрактный метод unlink(scope: Universe.Scope, sym: Universe.Symbol): scope.type
абстрактный метод updateAttachment[T](tree: Universe.Tree, attachment: T)(неявный arg0: ClassTag[T]): tree.type
Обновляет привязку с помощью слота полезной нагрузки T, добавленного/обновлённого предоставленным значением. Заменяет существующую полезную нагрузку того же типа, если она существует. Возвращает само дерево.
абстрактный метод updateAttachment[T](symbol: Universe.Symbol, attachment: T)(неявный arg0: ClassTag[T]): symbol.type
Обновляет привязку с слотом данных T, добавленным/обновлённым заданным значением. Заменяет существующие данные того же типа, если они есть. Возвращает сам символ.
abstract def valDef(sym: Universe.Symbol): Universe.ValDef
Метод-фабрика для узлов ValDef.
- Definition Classes
- InternalApi
abstract def valDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.ValDef
Метод-фабрика для узлов ValDef.
- Definition Classes
- InternalApi
Члены-значения
final def !=(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final def ##(): Int
- Определяющие классы
- AnyRef → Any
def +(other: String): String
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вany2stringadd[MacroInternalApi] с помощью метода any2stringadd в scala.Predef.
- Определяющие классы
- any2stringadd
def ->[B](y: B): (MacroInternalApi, B)
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вArrowAssoc[MacroInternalApi] с помощью метода ArrowAssoc в scala.Predef.
- Определяющие классы
- ArrowAssoc
- Аннотации
- @inline()
final def ==(arg0: Any): Boolean
- Определяющие классы
- AnyRef → Any
final def asInstanceOf[T0]: T0
- Определяющие классы
- Any
def clone(): AnyRef
- Атрибуты
- protected[java.lang]
- Определяющие классы
- AnyRef
- Аннотации
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
def ensuring(cond: (MacroInternalApi) => Boolean, msg: => Any): MacroInternalApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вEnsuring[MacroInternalApi] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: (MacroInternalApi) => Boolean): MacroInternalApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вEnsuring[MacroInternalApi] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean, msg: => Any): MacroInternalApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вEnsuring[MacroInternalApi] с помощью метода Ensuring в scala.Predef.
- Определяющие классы
- Ensuring
def ensuring(cond: Boolean): MacroInternalApi
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вEnsuring[MacroInternalApi] с помощью метода 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
- Неявный
- Этот член добавлен с помощью неявного преобразования из MacroInternalApi вStringFormat[MacroInternalApi] с помощью метода StringFormat в scala.Predef.
- Классы-определения
- StringFormat
- Аннотации
- @inline()
final def getClass(): Class[_ <: AnyRef]
- Классы-определения
- AnyRef → Any
- Аннотации
- @native()
def hashCode(): Int
- Классы-определения
- AnyRef → Any
- Аннотации
- @native()
final def isInstanceOf[T0]: Boolean
- Классы-определения
- Any
def manifestToTypeTag[T](mirror: Any, manifest: Manifest[T]): api.Universe.TypeTag[T]
Преобразование scala.reflect.Manifest в scala.reflect.api.TypeTags#TypeTag.
Компилятор обычно генерирует эти преобразования автоматически, когда манифест для типа T находится в области видимости, и запрашивается неявное значение типа TypeTag[T], но этот метод также можно вызвать вручную. Например:
manifestToTypeTag(scala.reflect.runtime.currentMirror, implicitly[Manifest[String]])
- Классы-определения
- InternalApi
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
def typeTagToManifest[T](mirror: Any, tag: api.Universe.TypeTag[T])(implicit arg0: ClassTag[T]): Manifest[T]
Преобразование scala.reflect.api.TypeTags#TypeTag в scala.reflect.Manifest.
Компилятор обычно генерирует эти преобразования автоматически, когда метка типа для типа T находится в области видимости, и запрашивается неявное значение типа Manifest[T], но этот метод также можно вызвать вручную. Например:
typeTagToManifest(scala.reflect.runtime.currentMirror, implicitly[TypeTag[String]])
- Классы-определения
- InternalApi
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/macros/Universe$MacroInternalApi.html
<invalid inheritdoc annotation>