Scala Reflection Library 2.13.16 - scala.reflect.macros.Universe.MacroInternalApi
Keywords: Scala Reflection Library 2.13.16 scala.reflect.macros.Universe.MacroInternalApi

Scala Reflection Library2.13.16 < Back


# Packages

-  package root
  Definition Classes
    root
-  package scala
  Definition Classes
    root
-  package reflect
  Definition Classes
    scala
-  package macros

  EXPERIMENTAL

  EXPERIMENTAL

  The base package for Scala macros.

  Macros are functions that are called by the compiler during compilation. Within these functions the programmer has access to compiler APIs. For example, it is possible to generate, analyze and typecheck code.

  See the Macros Guide on how to get started with Scala macros.

  Definition Classes
    reflect
-  abstract class Universe extends api.Universe

  EXPERIMENTAL

  EXPERIMENTAL

  The refinement of scala.reflect.api.Universe for the use by macro writers.

  This universe provides mutability for reflection artifacts (e.g. macros can change types of compiler trees, add annotation to symbols representing definitions, etc) and exposes some internal compiler functionality such as `Symbol.deSkolemize` or `Tree.attachments`.

  Definition Classes
    macros
- Alternative
- AlternativeApi
- AlternativeExtractor
- Annotated
- AnnotatedApi
- AnnotatedExtractor
- AnnotatedType
- AnnotatedTypeApi
- AnnotatedTypeExtractor
- Annotation
- AnnotationApi
- AnnotationExtractor
- AppliedTypeTree
- AppliedTypeTreeApi
- AppliedTypeTreeExtractor
- Apply
- ApplyApi
- ApplyExtractor
- Assign
- AssignApi
- AssignExtractor
- Bind
- BindApi
- BindExtractor
- Block
- BlockApi
- BlockExtractor
- BooleanFlag
- BoundedWildcardType
- BoundedWildcardTypeApi
- BoundedWildcardTypeExtractor
- CaseDef
- CaseDefApi
- CaseDefExtractor
- ClassDef
- ClassDefApi
- ClassDefExtractor
- ClassInfoType
- ClassInfoTypeApi
- ClassInfoTypeExtractor
- ClassMirror
- ClassSymbol
- ClassSymbolApi
- Compat
- CompatApi
- CompatToken
- CompilationUnit
- CompilationUnitContextApi
- CompoundType
- CompoundTypeApi
- CompoundTypeTree
- CompoundTypeTreeApi
- CompoundTypeTreeExtractor
- Constant
- ConstantApi
- ConstantExtractor
- ConstantType
- ConstantTypeApi
- ConstantTypeExtractor
- DefDef
- DefDefApi
- DefDefExtractor
- DefTree
- DefTreeApi
- DefinitionsApi
- ExistentialType
- ExistentialTypeApi
- ExistentialTypeExtractor
- ExistentialTypeTree
- ExistentialTypeTreeApi
- ExistentialTypeTreeExtractor
- Expr
- FieldMirror
- FlagOps
- FlagSet
- FlagValues
- FreeTermSymbol
- FreeTermSymbolApi
- FreeTypeSymbol
- FreeTypeSymbolApi
- Function
- FunctionApi
- FunctionExtractor
- GenericApply
- GenericApplyApi
- Ident
- IdentApi
- IdentExtractor
- If
- IfApi
- IfExtractor
- ImplDef
- ImplDefApi
- Import
- ImportApi
- ImportExtractor
- ImportSelector
- ImportSelectorApi
- ImportSelectorExtractor
- Importer
- InstanceMirror
- Internal
- InternalApi
- JavaArgument
- JavaArgumentApi
- LabelDef
- LabelDefApi
- LabelDefExtractor
- Liftable
- Literal
- LiteralApi
- LiteralExtractor
- MacroCompatApi
- MacroInternalApi
- Match
- MatchApi
- MatchExtractor
- MemberDef
- MemberDefApi
- MemberScope
- MemberScopeApi
- MethodMirror
- MethodSymbol
- MethodSymbolApi
- MethodType
- MethodTypeApi
- MethodTypeExtractor
- Mirror
- Modifiers
- ModifiersApi
- ModifiersExtractor
- ModuleDef
- ModuleDefApi
- ModuleDefExtractor
- ModuleMirror
- ModuleSymbol
- ModuleSymbolApi
- Name
- NameApi
- NameTree
- NameTreeApi
- NamedArg
- NamedArgApi
- NamedArgExtractor
- NamesApi
- New
- NewApi
- NewExtractor
- NullaryMethodType
- NullaryMethodTypeApi
- NullaryMethodTypeExtractor
- PackageDef
- PackageDefApi
- PackageDefExtractor
- PolyType
- PolyTypeApi
- PolyTypeExtractor
- Position
- Quasiquote
- RefTree
- RefTreeApi
- RefTreeExtractor
- ReferenceToBoxed
- ReferenceToBoxedApi
- ReferenceToBoxedExtractor
- RefinedType
- RefinedTypeApi
- RefinedTypeExtractor
- ReflectiveMirror
- ReificationSupportApi
- Return
- ReturnApi
- ReturnExtractor
- Run
- RunContextApi
- RuntimeClass
- RuntimeClassApi
- RuntimeMirror
- Scope
- ScopeApi
- Select
- SelectApi
- SelectExtractor
- SelectFromTypeTree
- SelectFromTypeTreeApi
- SelectFromTypeTreeExtractor
- SingleType
- SingleTypeApi
- SingleTypeExtractor
- SingletonType
- SingletonTypeApi
- SingletonTypeTree
- SingletonTypeTreeApi
- SingletonTypeTreeExtractor
- StandardLiftableInstances
- StandardTypes
- StandardUnliftableInstances
- Star
- StarApi
- StarExtractor
- Super
- SuperApi
- SuperExtractor
- SuperType
- SuperTypeApi
- SuperTypeExtractor
- SymTree
- SymTreeApi
- Symbol
- SymbolApi
- Template
- TemplateApi
- TemplateExtractor
- TemplateMirror
- TermName
- TermNameApi
- TermNameExtractor
- TermNamesApi
- TermSymbol
- TermSymbolApi
- TermTree
- TermTreeApi
- This
- ThisApi
- ThisExtractor
- ThisType
- ThisTypeApi
- ThisTypeExtractor
- Throw
- ThrowApi
- ThrowExtractor
- Transformer
- Traverser
- Tree
- TreeApi
- TreeCopier
- TreeCopierOps
- TreeGen
- TreePrinter
- Try
- TryApi
- TryExtractor
- TypTree
- TypTreeApi
- Type
- TypeApi
- TypeApply
- TypeApplyApi
- TypeApplyExtractor
- TypeBounds
- TypeBoundsApi
- TypeBoundsExtractor
- TypeBoundsTree
- TypeBoundsTreeApi
- TypeBoundsTreeExtractor
- TypeDef
- TypeDefApi
- TypeDefExtractor
- TypeName
- TypeNameApi
- TypeNameExtractor
- TypeNamesApi
- TypeRef
- TypeRefApi
- TypeRefExtractor
- TypeSymbol
- TypeSymbolApi
- TypeTag
- TypeTree
- TypeTreeApi
- TypeTreeExtractor
- Typed
- TypedApi
- TypedExtractor
- UnApply
- UnApplyApi
- UnApplyExtractor
- Unliftable
- ValDef
- ValDefApi
- ValDefExtractor
- ValOrDefDef
- ValOrDefDefApi
- WeakTypeTag

t

scala.reflect.macros.Universe

# MacroInternalApi

###

#### trait MacroInternalApi extends InternalApi

Self Type
  MacroInternalApi
Source
  Universe.scala
See also

  InternalApi

Linear Supertypes
Universe.InternalApi, AnyRef, Any
Known Subclasses
ContextInternalApi
Type Hierarchy

Ordering

1. Grouped
2. Alphabetic
3. By Inheritance

Inherited

1. MacroInternalApi
2. InternalApi
3. AnyRef
4. Any

Implicitly

1. by any2stringadd
2. by StringFormat
3. by Ensuring
4. by ArrowAssoc

1. Hide All
2. Show All

Visibility

1. Public
2. Protected

### Type Members

1.  trait DecoratorApi extends AnyRef

   Definition Classes
     InternalApi
   See also

     Decorators

2.  abstract type Decorators <: MacroDecoratorApi

   Definition Classes
     MacroInternalApi → InternalApi
   See also

     MacroDecoratorApi

3.  trait MacroDecoratorApi extends DecoratorApi

   See also

     DecoratorApi

### Abstract Value Members

1.  abstract def annotatedType(annotations: List[Universe.Annotation], underlying: Universe.Type): Universe.AnnotatedType

   A creator for `AnnotatedType` types.

   A creator for `AnnotatedType` types.

   Definition Classes
     InternalApi
2.  abstract def asFreeTerm(symbol: Universe.Symbol): Universe.FreeTermSymbol

   This symbol cast to a free term symbol.

   This symbol cast to a free term symbol.

   Definition Classes
     InternalApi
   Exceptions thrown

     `ScalaReflectionException` if `isFreeTerm` is false.

3.  abstract def asFreeType(symbol: Universe.Symbol): Universe.FreeTypeSymbol

   This symbol cast to a free type symbol.

   This symbol cast to a free type symbol.

   Definition Classes
     InternalApi
   Exceptions thrown

     `ScalaReflectionException` if `isFreeType` is false.

4.  abstract def attachments(tree: Universe.Tree): Attachments { type Pos = Universe.this.Position }

   The attachment of the tree.

5.  abstract def attachments(symbol: Universe.Symbol): Attachments { type Pos = Universe.this.Position }

   The attachment of the symbol.

6.  abstract def boundedWildcardType(bounds: Universe.TypeBounds): Universe.BoundedWildcardType

   A creator for `BoundedWildcardType` types.

   A creator for `BoundedWildcardType` types.

   Definition Classes
     InternalApi
7.  abstract def captureVariable(vble: Universe.Symbol): Unit

   Mark a variable as captured; i.e.

   Mark a variable as captured; i.e. force boxing in a *Ref type.

8.  abstract def capturedVariableType(vble: Universe.Symbol): Universe.Type

   Convert type of a captured variable to *Ref type.

9.  abstract def changeOwner(tree: Universe.Tree, prev: Universe.Symbol, next: Universe.Symbol): tree.type

   Collects all the symbols defined by subtrees of `tree` that are owned by `prev`, and then changes their owner to point to `next`.

   Collects all the symbols defined by subtrees of `tree` that are owned by `prev`, and then changes their owner to point to `next`.

   This is an essential tool to battle owner chain corruption when moving trees from one lexical context to another. Whenever you take an attributed tree that has been typechecked under the Context owned by some symbol (let's call it `x`) and splice it elsewhere, into the Context owned by another symbol (let's call it `y`), it is imperative that you either call `untypecheck` or do `changeOwner(tree, x, y)`.

   Since at the moment `untypecheck` has fundamental problem that can sometimes lead to tree corruption, `changeOwner` becomes an indispensable tool in building 100% robust macros. Future versions of the reflection API might obviate the need in taking care of these low-level details, but at the moment this is what we've got.

10.  abstract def classDef(sym: Universe.Symbol, impl: Universe.Template): Universe.ClassDef

    A factory method for `ClassDef` nodes.

    A factory method for `ClassDef` nodes.

    Definition Classes
      InternalApi
11.  abstract def classInfoType(parents: List[Universe.Type], decls: Universe.Scope, typeSymbol: Universe.Symbol): Universe.ClassInfoType

    A creator for `ClassInfoType` types.

    A creator for `ClassInfoType` types.

    Definition Classes
      InternalApi
12.  abstract def constantType(value: Universe.Constant): Universe.ConstantType

    A creator for `ConstantType` types.

    A creator for `ConstantType` types.

    Definition Classes
      InternalApi
13.  abstract def createImporter(from0: api.Universe): Universe.Importer { val from: from0.type }

    Creates an importer that moves reflection artifacts between universes.

    Creates an importer that moves reflection artifacts between universes.

    Definition Classes
      InternalApi
    See also

      Importer

14.  abstract def deSkolemize(symbol: Universe.Symbol): Universe.Symbol

    If this symbol is a skolem, its corresponding type parameter, otherwise the symbol itself.

    If this symbol is a skolem, its corresponding type parameter, otherwise the symbol itself.

    To quote Martin Odersky, skolems are synthetic type "constants" that are copies of existentially bound or universally bound type variables. E.g. if one is inside the right-hand side of a method:

        def foo[T](x: T) = ... foo[List[T]]....

    the skolem named `T` refers to the unknown type instance of `T` when `foo` is called. It needs to be different from the type parameter because in a recursive call as in the `foo[List[T]]` above the type parameter gets substituted with `List[T]`, but the type skolem stays what it is.

    The other form of skolem is an existential skolem. Say one has a function

        def bar(xs: List[T] forSome { type T }) = xs.head

    then each occurrence of `xs` on the right will have type `List[T']` where `T'` is a fresh copy of `T`.

    Definition Classes
      InternalApi
15.  abstract val decorators: Decorators

    Definition Classes
      InternalApi
    See also

      Decorators

16.  abstract def defDef(sym: Universe.Symbol, rhs: (List[List[Universe.Symbol]]) => Universe.Tree): Universe.DefDef

    A factory method for `DefDef` nodes.

    A factory method for `DefDef` nodes.

    Definition Classes
      InternalApi
17.  abstract def defDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.DefDef

    A factory method for `DefDef` nodes.

    A factory method for `DefDef` nodes.

    Definition Classes
      InternalApi
18.  abstract def defDef(sym: Universe.Symbol, mods: Universe.Modifiers, rhs: Universe.Tree): Universe.DefDef

    A factory method for `DefDef` nodes.

    A factory method for `DefDef` nodes.

    Definition Classes
      InternalApi
19.  abstract def defDef(sym: Universe.Symbol, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef

    A factory method for `DefDef` nodes.

    A factory method for `DefDef` nodes.

    Definition Classes
      InternalApi
20.  abstract def defDef(sym: Universe.Symbol, mods: Universe.Modifiers, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef

    A factory method for `DefDef` nodes.

    A factory method for `DefDef` nodes.

    Definition Classes
      InternalApi
21.  abstract def defineType(tree: Universe.Tree, tp: Universe.Type): tree.type

    Like `setType`, but if this is a previously empty TypeTree that fact is remembered so that `untypecheck` will snap back.

    Like `setType`, but if this is a previously empty TypeTree that fact is remembered so that `untypecheck` will snap back.

    \@PP: Attempting to elaborate on the above, I find: If defineType is called on a TypeTree whose type field is null or NoType, this is recorded as "wasEmpty = true". That value is used in ResetAttrsTraverser, which nulls out the type field of TypeTrees for which wasEmpty is true, leaving the others alone.

    `untypecheck` (or `resetAttrs` in compiler parlance) is used in situations where some speculative typing of a tree takes place, fails, and the tree needs to be returned to its former state to try again. So according to me: using `defineType` instead of `setType` is how you communicate that the type being set does not depend on any previous state, and therefore should be abandoned if the current line of type inquiry doesn't work out.

22.  abstract def enter(scope: Universe.Scope, sym: Universe.Symbol): scope.type

    Adds a given symbol to the given scope.

23.  abstract def existentialAbstraction(tparams: List[Universe.Symbol], tpe0: Universe.Type): Universe.Type

    A creator for existential types.

    A creator for existential types. This generates:

        tpe1 where { tparams }

    where `tpe1` is the result of extrapolating `tpe` with regard to `tparams`. Extrapolating means that type variables in `tparams` occurring in covariant positions are replaced by upper bounds, (minus any SingletonClass markers), type variables in `tparams` occurring in contravariant positions are replaced by upper bounds, provided the resulting type is legal with regard to stability, and does not contain any type variable in `tparams`.

    The abstraction drops all type parameters that are not directly or indirectly referenced by type `tpe1`. If there are no remaining type parameters, simply returns result type `tpe`.

    Definition Classes
      InternalApi
24.  abstract def existentialType(quantified: List[Universe.Symbol], underlying: Universe.Type): Universe.ExistentialType

    A creator for `ExistentialType` types.

    A creator for `ExistentialType` types.

    Definition Classes
      InternalApi
25.  abstract def flags(symbol: Universe.Symbol): Universe.FlagSet

    Returns internal flags associated with the symbol.

    Returns internal flags associated with the symbol.

    Definition Classes
      InternalApi
26.  abstract def freeTerms(tree: Universe.Tree): List[Universe.FreeTermSymbol]

    Extracts free term symbols from a tree that is reified or contains reified subtrees.

    Extracts free term symbols from a tree that is reified or contains reified subtrees.

    Definition Classes
      InternalApi
27.  abstract def freeTypes(tree: Universe.Tree): List[Universe.FreeTypeSymbol]

    Extracts free type symbols from a tree that is reified or contains reified subtrees.

    Extracts free type symbols from a tree that is reified or contains reified subtrees.

    Definition Classes
      InternalApi
28.  abstract def fullyInitialize(scope: Universe.Scope): scope.type

    Calls initialize on all the symbols that the scope consists of.

    Calls initialize on all the symbols that the scope consists of.

    Definition Classes
      InternalApi
29.  abstract def fullyInitialize(tp: Universe.Type): tp.type

    Calls initialize on all the value and type parameters of the type.

    Calls initialize on all the value and type parameters of the type.

    Definition Classes
      InternalApi
30.  abstract def fullyInitialize(symbol: Universe.Symbol): symbol.type

    Calls initialize on the owner and all the value and type parameters of the symbol.

    Calls initialize on the owner and all the value and type parameters of the symbol.

    Definition Classes
      InternalApi
31.  abstract val gen: TreeGen

    Advanced tree factories

32.  abstract def initialize(symbol: Universe.Symbol): symbol.type

    Forces all outstanding completers associated with this symbol.

    Forces all outstanding completers associated with this symbol. After this call returns, the symbol becomes immutable and thread-safe.

    Definition Classes
      InternalApi
33.  abstract def intersectionType(tps: List[Universe.Type], owner: Universe.Symbol): Universe.Type

    A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.

    A creator for intersection type where intersections of a single type are replaced by the type itself, and repeated parent classes are merged.

    !!! Repeated parent classes are not merged - is this a bug in the comment or in the code?

    Definition Classes
      InternalApi
34.  abstract def intersectionType(tps: List[Universe.Type]): Universe.Type

    A creator for intersection type where intersections of a single type are replaced by the type itself.

    A creator for intersection type where intersections of a single type are replaced by the type itself.

    Definition Classes
      InternalApi
35.  abstract def isErroneous(symbol: Universe.Symbol): Boolean

    Does this symbol or its underlying type represent a typechecking error?

    Does this symbol or its underlying type represent a typechecking error?

    Definition Classes
      InternalApi
36.  abstract def isFreeTerm(symbol: Universe.Symbol): Boolean

    Does this symbol represent a free term captured by reification? If yes, `isTerm` is also guaranteed to be true.

    Does this symbol represent a free term captured by reification? If yes, `isTerm` is also guaranteed to be true.

    Definition Classes
      InternalApi
37.  abstract def isFreeType(symbol: Universe.Symbol): Boolean

    Does this symbol represent a free type captured by reification? If yes, `isType` is also guaranteed to be true.

    Does this symbol represent a free type captured by reification? If yes, `isType` is also guaranteed to be true.

    Definition Classes
      InternalApi
38.  abstract def isSkolem(symbol: Universe.Symbol): Boolean

    Does this symbol represent the definition of a skolem? Skolems are used during typechecking to represent type parameters viewed from inside their scopes.

    Does this symbol represent the definition of a skolem? Skolems are used during typechecking to represent type parameters viewed from inside their scopes.

    Definition Classes
      InternalApi
39.  abstract def labelDef(sym: Universe.Symbol, params: List[Universe.Symbol], rhs: Universe.Tree): Universe.LabelDef

    A factory method for `LabelDef` nodes.

    A factory method for `LabelDef` nodes.

    Definition Classes
      InternalApi
40.  abstract def methodType(params: List[Universe.Symbol], resultType: Universe.Type): Universe.MethodType

    A creator for `MethodType` types.

    A creator for `MethodType` types.

    Definition Classes
      InternalApi
41.  abstract def moduleDef(sym: Universe.Symbol, impl: Universe.Template): Universe.ModuleDef

    A factory method for `ModuleDef` nodes.

    A factory method for `ModuleDef` nodes.

    Definition Classes
      InternalApi
42.  abstract def newClassSymbol(owner: Universe.Symbol, name: Universe.TypeName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.ClassSymbol
    Definition Classes
      InternalApi
43.  abstract def newFreeTerm(name: String, value: => Any, flags: Universe.FlagSet = NoFlags, origin: String = null): Universe.FreeTermSymbol
    Definition Classes
      InternalApi
44.  abstract def newFreeType(name: String, flags: Universe.FlagSet = NoFlags, origin: String = null): Universe.FreeTypeSymbol
    Definition Classes
      InternalApi
45.  abstract def newMethodSymbol(owner: Universe.Symbol, name: Universe.TermName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.MethodSymbol
    Definition Classes
      InternalApi
46.  abstract def newModuleAndClassSymbol(owner: Universe.Symbol, name: Universe.Name, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): (Universe.ModuleSymbol, Universe.ClassSymbol)
    Definition Classes
      InternalApi
47.  abstract def newScopeWith(elems: Universe.Symbol*): Universe.Scope

    Create a new scope with the given initial elements.

    Create a new scope with the given initial elements.

    Definition Classes
      InternalApi
48.  abstract def newTermSymbol(owner: Universe.Symbol, name: Universe.TermName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.TermSymbol
    Definition Classes
      InternalApi
49.  abstract def newTypeSymbol(owner: Universe.Symbol, name: Universe.TypeName, pos: Universe.Position = NoPosition, flags: Universe.FlagSet = NoFlags): Universe.TypeSymbol
    Definition Classes
      InternalApi
50.  abstract def nullaryMethodType(resultType: Universe.Type): Universe.NullaryMethodType

    A creator for `NullaryMethodType` types.

    A creator for `NullaryMethodType` types.

    Definition Classes
      InternalApi
51.  abstract def polyType(tparams: List[Universe.Symbol], tpe: Universe.Type): Universe.PolyType

    A creator for type parameterizations that strips empty type parameter lists.

    A creator for type parameterizations that strips empty type parameter lists. Use this factory method to indicate the type has kind * (it's a polymorphic value) until we start tracking explicit kinds equivalent to typeFun (except that the latter requires tparams nonEmpty).

    Definition Classes
      InternalApi
52.  abstract def referenceCapturedVariable(vble: Universe.Symbol): Universe.Tree

    Mark given identifier as a reference to a captured variable itself suppressing dereferencing with the `elem` field.

53.  abstract def refinedType(parents: List[Universe.Type], owner: Universe.Symbol, decls: Universe.Scope, pos: Universe.Position): Universe.Type

    A creator for `RefinedType` types.

    A creator for `RefinedType` types.

    Definition Classes
      InternalApi
54.  abstract def refinedType(parents: List[Universe.Type], owner: Universe.Symbol, decls: Universe.Scope): Universe.Type

    A creator for `RefinedType` types.

    A creator for `RefinedType` types.

    Definition Classes
      InternalApi
55.  abstract def refinedType(parents: List[Universe.Type], owner: Universe.Symbol): Universe.Type

    A creator for `RefinedType` types.

    A creator for `RefinedType` types.

    Definition Classes
      InternalApi
56.  abstract def refinedType(parents: List[Universe.Type], decls: Universe.Scope, clazz: Universe.Symbol): Universe.RefinedType

    A creator for `RefinedType` types.

    A creator for `RefinedType` types.

    Definition Classes
      InternalApi
57.  abstract def refinedType(parents: List[Universe.Type], decls: Universe.Scope): Universe.RefinedType

    A creator for `RefinedType` types.

    A creator for `RefinedType` types.

    Definition Classes
      InternalApi
58.  abstract val reificationSupport: Universe.ReificationSupportApi

    This is an internal implementation module.

    This is an internal implementation module.

    Definition Classes
      InternalApi
59.  abstract def removeAttachment[T](tree: Universe.Tree)(implicit arg0: ClassTag[T]): tree.type

    Update the attachment with the payload of the given class type `T` removed.

    Update the attachment with the payload of the given class type `T` removed. Returns the tree itself.

60.  abstract def removeAttachment[T](symbol: Universe.Symbol)(implicit arg0: ClassTag[T]): symbol.type

    Update the attachment with the payload of the given class type `T` removed.

    Update the attachment with the payload of the given class type `T` removed. Returns the symbol itself.

61.  abstract def resetFlag(symbol: Universe.Symbol, flags: Universe.FlagSet): symbol.type

    Disables `flags` on the symbol.

62.  abstract def setAnnotations(symbol: Universe.Symbol, annots: Universe.Annotation*): symbol.type

    Sets the `annotations` of the symbol.

63.  abstract def setFlag(symbol: Universe.Symbol, flags: Universe.FlagSet): symbol.type

    Enables `flags` on the symbol.

64.  abstract def setInfo(symbol: Universe.Symbol, tpe: Universe.Type): symbol.type

    Sets the `info` of the symbol.

65.  abstract def setName(symbol: Universe.Symbol, name: Universe.Name): symbol.type

    Sets the `name` of the symbol.

66.  abstract def setOriginal(tt: Universe.TypeTree, original: Universe.Tree): Universe.TypeTree

    Sets the `original` field of the type tree.

67.  abstract def setOwner(symbol: Universe.Symbol, newowner: Universe.Symbol): symbol.type

    Sets the `owner` of the symbol.

68.  abstract def setPos(tree: Universe.Tree, newpos: Universe.Position): tree.type

    Sets the `pos` of the tree.

    Sets the `pos` of the tree. Returns the tree itself.

69.  abstract def setPrivateWithin(symbol: Universe.Symbol, sym: Universe.Symbol): symbol.type

    Sets the `privateWithin` of the symbol.

70.  abstract def setSymbol(tree: Universe.Tree, sym: Universe.Symbol): tree.type

    Sets the `symbol` of the tree.

    Sets the `symbol` of the tree. Returns the tree itself.

71.  abstract def setType(tree: Universe.Tree, tp: Universe.Type): tree.type

    Sets the `tpe` of the tree.

    Sets the `tpe` of the tree. Returns the tree itself.

72.  abstract def singleType(pre: Universe.Type, sym: Universe.Symbol): Universe.Type

    A creator for `SingleType` types.

    A creator for `SingleType` types.

    Definition Classes
      InternalApi
73.  abstract def subpatterns(tree: Universe.Tree): Option[List[Universe.Tree]]

    Retrieves the untyped list of subpatterns attached to selector dummy of an UnApply node.

    Retrieves the untyped list of subpatterns attached to selector dummy of an UnApply node. Useful in writing quasiquoting macros that do pattern matching.

74.  abstract def substituteSymbols(tree: Universe.Tree, from: List[Universe.Symbol], to: List[Universe.Symbol]): Universe.Tree

    Substitute symbols in `to` for corresponding occurrences of references to symbols `from` in this type.

    Substitute symbols in `to` for corresponding occurrences of references to symbols `from` in this type.

    Definition Classes
      InternalApi
75.  abstract def substituteThis(tree: Universe.Tree, clazz: Universe.Symbol, to: => Universe.Tree): Universe.Tree

    Substitute given tree `to` for occurrences of nodes that represent `C.this`, where `C` refers to the given class `clazz`.

    Substitute given tree `to` for occurrences of nodes that represent `C.this`, where `C` refers to the given class `clazz`.

    Definition Classes
      InternalApi
76.  abstract def substituteTypes(tree: Universe.Tree, from: List[Universe.Symbol], to: List[Universe.Type]): Universe.Tree

    Substitute types in `to` for corresponding occurrences of references to symbols `from` in this tree.

    Substitute types in `to` for corresponding occurrences of references to symbols `from` in this tree.

    Definition Classes
      InternalApi
77.  abstract def superType(thistpe: Universe.Type, supertpe: Universe.Type): Universe.Type

    A creator for `SuperType` types.

    A creator for `SuperType` types.

    Definition Classes
      InternalApi
78.  abstract def thisType(sym: Universe.Symbol): Universe.Type

    A creator for `ThisType` types.

    A creator for `ThisType` types.

    Definition Classes
      InternalApi
79.  abstract def typeBounds(lo: Universe.Type, hi: Universe.Type): Universe.TypeBounds

    A creator for `TypeBounds` types.

    A creator for `TypeBounds` types.

    Definition Classes
      InternalApi
80.  abstract def typeDef(sym: Universe.Symbol): Universe.TypeDef

    A factory method for `TypeDef` nodes.

    A factory method for `TypeDef` nodes.

    Definition Classes
      InternalApi
81.  abstract def typeDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.TypeDef

    A factory method for `TypeDef` nodes.

    A factory method for `TypeDef` nodes.

    Definition Classes
      InternalApi
82.  abstract def typeRef(pre: Universe.Type, sym: Universe.Symbol, args: List[Universe.Type]): Universe.Type

    A creator for `TypeRef` types.

    A creator for `TypeRef` types.

    Definition Classes
      InternalApi
83.  abstract def unlink(scope: Universe.Scope, sym: Universe.Symbol): scope.type

    Removes a given symbol to the given scope.

84.  abstract def updateAttachment[T](tree: Universe.Tree, attachment: T)(implicit arg0: ClassTag[T]): tree.type

    Updates the attachment with the payload slot of T added/updated with the provided value.

    Updates the attachment with the payload slot of T added/updated with the provided value. Replaces an existing payload of the same type, if exists. Returns the tree itself.

85.  abstract def updateAttachment[T](symbol: Universe.Symbol, attachment: T)(implicit arg0: ClassTag[T]): symbol.type

    Updates the attachment with the payload slot of T added/updated with the provided value.

    Updates the attachment with the payload slot of T added/updated with the provided value. Replaces an existing payload of the same type, if exists. Returns the symbol itself.

86.  abstract def valDef(sym: Universe.Symbol): Universe.ValDef

    A factory method for `ValDef` nodes.

    A factory method for `ValDef` nodes.

    Definition Classes
      InternalApi
87.  abstract def valDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.ValDef

    A factory method for `ValDef` nodes.

    A factory method for `ValDef` nodes.

    Definition Classes
      InternalApi

### Concrete Value Members

1.  final def !=(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
2.  final def ##: Int
   Definition Classes
     AnyRef → Any
3.  def +(other: String): String
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toany2stringadd[MacroInternalApi] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd
4.  def ->[B](y: B): (MacroInternalApi, B)
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toArrowAssoc[MacroInternalApi] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()
5.  final def ==(arg0: Any): Boolean
   Definition Classes
     AnyRef → Any
6.  final def asInstanceOf[T0]: T0
   Definition Classes
     Any
7.  def clone(): AnyRef
   Attributes
     protected[lang]
   Definition Classes
     AnyRef
   Annotations
     @throws(classOf[java.lang.CloneNotSupportedException]) @native()
8.  def ensuring(cond: (MacroInternalApi) => Boolean, msg: => Any): MacroInternalApi
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toEnsuring[MacroInternalApi] performed by method Ensuring in scala.Predef.
   Definition Classes
     Ensuring
9.  def ensuring(cond: (MacroInternalApi) => Boolean): MacroInternalApi
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toEnsuring[MacroInternalApi] performed by method Ensuring in scala.Predef.
   Definition Classes
     Ensuring
10.  def ensuring(cond: Boolean, msg: => Any): MacroInternalApi
    Implicit
      This member is added by an implicit conversion from MacroInternalApi toEnsuring[MacroInternalApi] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
11.  def ensuring(cond: Boolean): MacroInternalApi
    Implicit
      This member is added by an implicit conversion from MacroInternalApi toEnsuring[MacroInternalApi] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring
12.  final def eq(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
13.  def equals(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef → Any
14.  def finalize(): Unit
    Attributes
      protected[lang]
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.Throwable])
15.  final def getClass(): Class[_ <: AnyRef]
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
16.  def hashCode(): Int
    Definition Classes
      AnyRef → Any
    Annotations
      @native()
17.  final def isInstanceOf[T0]: Boolean
    Definition Classes
      Any
18.  def manifestToTypeTag[T](mirror: Any, manifest: Manifest[T]): api.Universe.TypeTag[T]

    Convert a scala.reflect.Manifest to a scala.reflect.api.TypeTags#TypeTag.

    Convert a scala.reflect.Manifest to a scala.reflect.api.TypeTags#TypeTag.

    Compiler usually generates these conversions automatically, when a manifest for a type `T` is in scope, and an implicit of type `TypeTag[T]` is requested, but this method can also be called manually. For example:

        manifestToTypeTag(scala.reflect.runtime.currentMirror, implicitly[Manifest[String]])

    Definition Classes
      InternalApi
19.  def markForAsyncTransform(owner: Universe.Symbol, method: Universe.DefDef, awaitSymbol: Universe.Symbol, config: Map[String, AnyRef]): Universe.DefDef

    Mark the given `DefDef` for later processing by the `async` phase of the compiler

    Mark the given `DefDef` for later processing by the `async` phase of the compiler

    owner

      current owner the owner of the call site being transformed into an async state machine

    method

      A method of the form `def $name($paramName: $ParamType): $T = $CODE`, where calls to `$CODE` `awaitSymbol` in `$CODE` mark continuation points.

    awaitSymbol

      The `await` method, of a typically of a type like `[T](Future[T): T`

    config

      Untyped channel for additional configuration parameters. This currently allows

      - "postAnfTransform" : A function from `Block => Block`
      - "stateDiagram" : A function from `(Symbol, Tree) => Option[String => Unit]` that can opt to receive a .dot diagram of the state machine.
    Definition Classes
      InternalApi
20.  final def ne(arg0: AnyRef): Boolean
    Definition Classes
      AnyRef
21.  final def notify(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
22.  final def notifyAll(): Unit
    Definition Classes
      AnyRef
    Annotations
      @native()
23.  final def synchronized[T0](arg0: => T0): T0
    Definition Classes
      AnyRef
24.  def toString(): String
    Definition Classes
      AnyRef → Any
25.  def typeTagToManifest[T](mirror: Any, tag: api.Universe.TypeTag[T])(implicit arg0: ClassTag[T]): Manifest[T]

    Convert a scala.reflect.api.TypeTags#TypeTag to a scala.reflect.Manifest.

    Convert a scala.reflect.api.TypeTags#TypeTag to a scala.reflect.Manifest.

    Compiler usually generates these conversions automatically, when a type tag for a type `T` is in scope, and an implicit of type `Manifest[T]` is requested, but this method can also be called manually. For example:

        typeTagToManifest(scala.reflect.runtime.currentMirror, implicitly[TypeTag[String]])

    Definition Classes
      InternalApi
26.  final def wait(): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
27.  final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException])
28.  final def wait(arg0: Long): Unit
    Definition Classes
      AnyRef
    Annotations
      @throws(classOf[java.lang.InterruptedException]) @native()

### Deprecated Value Members

1.  def formatted(fmtstr: String): String
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toStringFormat[MacroInternalApi] performed by method StringFormat in scala.Predef.
   Definition Classes
     StringFormat
   Annotations
     @deprecated @inline()
   Deprecated

     (Since version 2.12.16) Use `formatString.format(value)` instead of `value.formatted(formatString)`, or use the `f""` string interpolator. In Java 15 and later, `formatted` resolves to the new method in String which has reversed parameters.

2.  def →[B](y: B): (MacroInternalApi, B)
   Implicit
     This member is added by an implicit conversion from MacroInternalApi toArrowAssoc[MacroInternalApi] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @deprecated
   Deprecated

     (Since version 2.13.0) Use `->` instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.

### Inherited from Universe.InternalApi

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd fromMacroInternalApi to any2stringadd[MacroInternalApi]

### Inherited by implicit conversion StringFormat fromMacroInternalApi to StringFormat[MacroInternalApi]

### Inherited by implicit conversion Ensuring fromMacroInternalApi to Ensuring[MacroInternalApi]

### Inherited by implicit conversion ArrowAssoc fromMacroInternalApi to ArrowAssoc[MacroInternalApi]

### Macro Specific Additions

### TagInterop

### Types - Creation

### Ungrouped