scala.reflect.api

# Universe

#### abstract class Universe extends Symbols with Types with FlagSets with Scopes with Names with Trees with Constants with Annotations with Positions with Exprs with TypeTags with ImplicitTags with StandardDefinitions with StandardNames with StandardLiftables with Mirrors with Printers with Liftables with Quasiquotes with Internals

EXPERIMENTAL

`Universe` provides a complete set of reflection operations which make it possible for one to reflectively inspect Scala type relations, such as membership or subtyping.

scala.reflect.api.Universe has two specialized sub-universes for different scenarios. scala.reflect.api.JavaUniverse adds operations that link symbols and types to the underlying classes and runtime values of a JVM instance-- this can be thought of as the `Universe` that should be used for all typical use-cases of Scala reflection. scala.reflect.macros.Universe adds operations which allow macros to access selected compiler data structures and operations-- this type of `Universe` should only ever exist within the implementation of a Scala macro.

`Universe` can be thought of as the entry point to Scala reflection. It mixes-in, and thus provides an interface to the following main types:

- Types represent types
- Symbols represent definitions
- Trees represent abstract syntax trees
- Names represent term and type names
- Annotations represent annotations
- Positions represent source positions of tree nodes
- FlagSet represent sets of flags that apply to symbols and definition trees
- Constants represent compile-time constants.

To obtain a `Universe` to use with Scala runtime reflection, simply make sure to use or import `scala.reflect.runtime.universe._`

    scala> import scala.reflect.runtime.universe._
    import scala.reflect.runtime.universe._

    scala> typeOf[List[Int]]
    res0: reflect.runtime.universe.Type = scala.List[Int]

    scala> typeOf[Either[String, Int]]
    res1: reflect.runtime.universe.Type = scala.Either[String,Int]

To obtain a `Universe` for use within a Scala macro, use scala.reflect.macros.blackbox.Context#universe. or scala.reflect.macros.whitebox.Context#universe. For example:

    def printf(format: String, params: Any*): Unit = macro impl
    def impl(c: Context)(format: c.Expr[String], params: c.Expr[Any]*): c.Expr[Unit] = {
      import c.universe._
      ...
    }

For more information about `Universe`s, see the Reflection Guide: Universes

Linear Supertypes
Internals, Quasiquotes, Liftables, Printers, Mirrors, StandardLiftables, StandardNames, StandardDefinitions, ImplicitTags, TypeTags, Exprs, Positions, Annotations, Constants, Trees, Names, Scopes, FlagSets, Types, Symbols, AnyRef, Any
Known Subclasses
JavaUniverse, Universe
Type Hierarchy Learn more about scaladoc diagrams
Content Hierarchy Learn more about scaladoc diagrams
Ordering

1. Grouped
2. Alphabetic
3. By inheritance

Inherited

1. Universe
2. Internals
3. Quasiquotes
4. Liftables
5. Printers
6. Mirrors
7. StandardLiftables
8. StandardNames
9. StandardDefinitions
10. ImplicitTags
11. TypeTags
12. Exprs
13. Positions
14. Annotations
15. Constants
16. Trees
17. Names
18. Scopes
19. FlagSets
20. Types
21. Symbols
22. AnyRef
23. Any

Implicitly

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

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Instance Constructors

1. #### new Universe()

### Type Members

1. #### abstract type Alternative >: Null <: Universe.AlternativeApi with Universe.TermTree

   Alternatives of patterns.

2. #### trait AlternativeApi extends Universe.TermTreeApi

   The API that all alternatives support

3. #### abstract class AlternativeExtractor extends AnyRef

   An extractor class to create and pattern match with syntax `Alternative(trees)`.

4. #### abstract type Annotated >: Null <: Universe.AnnotatedApi with Universe.Tree

   A tree that has an annotation attached to it.

5. #### trait AnnotatedApi extends Universe.TreeApi

   The API that all annotateds support

6. #### abstract class AnnotatedExtractor extends AnyRef

   An extractor class to create and pattern match with syntax `Annotated(annot, arg)`.

7. #### abstract type AnnotatedType >: Null <: Universe.AnnotatedTypeApi with Universe.Type

   The `AnnotatedType` type signature is used for annotated types of the for `<type> @<annotation>`.

8. #### trait AnnotatedTypeApi extends Universe.TypeApi

   The API that all annotated types support.

9. #### abstract class AnnotatedTypeExtractor extends AnyRef

   An extractor class to create and pattern match with syntax `AnnotatedType(annotations, underlying)`.

10. #### abstract type Annotation >: Null <: Universe.AnnotationApi

    Information about an annotation.

11. #### trait AnnotationApi extends AnyRef

    The API of `Annotation` instances.

12. #### abstract class AnnotationExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Annotation(tpe, scalaArgs, javaArgs)`.

13. #### abstract type AppliedTypeTree >: Null <: Universe.AppliedTypeTreeApi with Universe.TypTree

    Applied type <tpt> [ <args> ], eliminated by RefCheck

14. #### trait AppliedTypeTreeApi extends Universe.TypTreeApi

    The API that all applied type trees support

15. #### abstract class AppliedTypeTreeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `AppliedTypeTree(tpt, args)`.

16. #### abstract type Apply >: Null <: Universe.ApplyApi with Universe.GenericApply

    Value application

17. #### trait ApplyApi extends Universe.GenericApplyApi

    The API that all applies support

18. #### abstract class ApplyExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Apply(fun, args)`.

19. #### abstract type Assign >: Null <: Universe.AssignApi with Universe.TermTree

    Assignment

20. #### trait AssignApi extends Universe.TermTreeApi

    The API that all assigns support

21. #### abstract class AssignExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Assign(lhs, rhs)`.

22. #### abstract type AssignOrNamedArg >: Null <: Universe.AssignOrNamedArgApi with Universe.TermTree

    Either an assignment or a named argument.

23. #### trait AssignOrNamedArgApi extends Universe.TermTreeApi

    The API that all assigns support

24. #### abstract class AssignOrNamedArgExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `AssignOrNamedArg(lhs, rhs)`.

25. #### abstract type Bind >: Null <: Universe.BindApi with Universe.DefTree

    Bind a variable to a rhs pattern.

26. #### trait BindApi extends Universe.DefTreeApi

    The API that all binds support

27. #### abstract class BindExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Bind(name, body)`.

28. #### abstract type Block >: Null <: Universe.BlockApi with Universe.TermTree

    Block of expressions (semicolon separated expressions)

29. #### trait BlockApi extends Universe.TermTreeApi

    The API that all blocks support

30. #### abstract class BlockExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Block(stats, expr)`.

31. #### case class BooleanFlag(value: Option[Boolean]) extends Product with Serializable

32. #### abstract type BoundedWildcardType >: Null <: Universe.BoundedWildcardTypeApi with Universe.Type

    BoundedWildcardTypes, used only during type inference, are created in two places:

33. #### trait BoundedWildcardTypeApi extends Universe.TypeApi

    The API that all this types support.

34. #### abstract class BoundedWildcardTypeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `BoundedWildcardTypeExtractor(bounds)` with `bounds` denoting the type bounds.

35. #### abstract type CaseDef >: Null <: Universe.CaseDefApi with Universe.Tree

    Case clause in a pattern match.

36. #### trait CaseDefApi extends Universe.TreeApi

    The API that all case defs support

37. #### abstract class CaseDefExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `CaseDef(pat, guard, body)`.

38. #### abstract type ClassDef >: Null <: Universe.ClassDefApi with Universe.ImplDef

    A class definition.

39. #### trait ClassDefApi extends Universe.ImplDefApi

    The API that all class defs support

40. #### abstract class ClassDefExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `ClassDef(mods, name, tparams, impl)`.

41. #### abstract type ClassInfoType >: Null <: Universe.ClassInfoTypeApi with Universe.CompoundType

    The `ClassInfo` type signature is used to define parents and declarations of classes, traits, and objects.

42. #### trait ClassInfoTypeApi extends Universe.TypeApi

    The API that all class info types support.

43. #### abstract class ClassInfoTypeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `ClassInfo(parents, decls, clazz)` Here, `parents` is the list of parent types of the class, `decls` is the scope containing all declarations in the class, and `clazz` is the symbol of the class itself.

44. #### trait ClassMirror extends Universe.TemplateMirror

    A mirror that reflects the instance parts of a runtime class.

45. #### abstract type ClassSymbol >: Null <: Universe.ClassSymbolApi with Universe.TypeSymbol

    The type of class symbols representing class and trait definitions.

46. #### trait ClassSymbolApi extends Universe.TypeSymbolApi

    The API of class symbols.

47. #### abstract type Compat <: CompatApi

    Definition Classes
      Internals
    See also

      compat

48. #### trait CompatApi extends AnyRef

49. #### class CompatToken extends AnyRef

    Presence of an implicit value of this type in scope indicates that source compatibility with Scala 2.

50. #### abstract type CompoundType >: Null <: Universe.CompoundTypeApi with Universe.Type

    A subtype of Type representing refined types as well as `ClassInfo` signatures.

51. #### trait CompoundTypeApi extends AnyRef

    Has no special methods.

52. #### abstract type CompoundTypeTree >: Null <: Universe.CompoundTypeTreeApi with Universe.TypTree

    Intersection type <parent1> with .

53. #### trait CompoundTypeTreeApi extends Universe.TypTreeApi

    The API that all compound type trees support

54. #### abstract class CompoundTypeTreeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `CompoundTypeTree(templ)`.

55. #### abstract type Constant >: Null <: Universe.ConstantApi

    This "virtual" case class represents the reflection interface for literal expressions which can not be further broken down or evaluated, such as "true", "0", "classOf[List]".

56. #### abstract class ConstantApi extends AnyRef

    The API of Constant instances.

57. #### abstract class ConstantExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Constant(value)` where `value` is the Scala value of the constant.

58. #### abstract type ConstantType >: Null <: Universe.ConstantTypeApi with Universe.SingletonType

    The `ConstantType` type is not directly written in user programs, but arises as the type of a constant.

59. #### trait ConstantTypeApi extends Universe.TypeApi

    The API that all constant types support.

60. #### abstract class ConstantTypeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `ConstantType(constant)` Here, `constant` is the constant value represented by the type.

61. #### abstract type DefDef >: Null <: Universe.DefDefApi with Universe.ValOrDefDef

    A method or macro definition.

62. #### trait DefDefApi extends Universe.ValOrDefDefApi

    The API that all def defs support

63. #### abstract class DefDefExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `DefDef(mods, name, tparams, vparamss, tpt, rhs)`.

64. #### abstract type DefTree >: Null <: Universe.DefTreeApi with Universe.SymTree with Universe.NameTree

    A tree representing a symbol-defining entity: 1) A declaration or a definition (type, class, object, package, val, var, or def) 2) `Bind` that is used to represent binding occurrences in pattern matches 3) `LabelDef` that is used internally to represent while loops

65. #### trait DefTreeApi extends Universe.SymTreeApi with Universe.NameTreeApi

    The API that all def trees support

66. #### trait DefinitionsApi extends Universe.StandardTypes

    Defines standard symbols (and types via its base trait).

67. #### abstract type ExistentialType >: Null <: Universe.ExistentialTypeApi with Universe.Type

    The `ExistentialType` type signature is used for existential types and wildcard types.

68. #### trait ExistentialTypeApi extends Universe.TypeApi

    The API that all existential types support.

69. #### abstract class ExistentialTypeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `ExistentialType(quantified, underlying)`.

70. #### abstract type ExistentialTypeTree >: Null <: Universe.ExistentialTypeTreeApi with Universe.TypTree

    Existential type tree node

71. #### trait ExistentialTypeTreeApi extends Universe.TypTreeApi

    The API that all existential type trees support

72. #### abstract class ExistentialTypeTreeExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `ExistentialTypeTree(tpt, whereClauses)`.

73. #### trait Expr[+T] extends Equals with Serializable

    Expr wraps an abstract syntax tree and tags it with its type.

74. #### trait FieldMirror extends AnyRef

    A mirror that reflects a field.

75. #### trait FlagOps extends Any

    The API of `FlagSet` instances.

76. #### abstract type FlagSet

    An abstract type representing sets of flags (like private, final, etc.

77. #### trait FlagValues extends AnyRef

    All possible values that can constitute flag sets.

78. #### abstract type FreeTermSymbol >: Null <: Universe.FreeTermSymbolApi with Universe.TermSymbol

    The type of free terms introduced by reification.

79. #### trait FreeTermSymbolApi extends Universe.TermSymbolApi

    The API of free term symbols.

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

    The type of free types introduced by reification.

81. #### trait FreeTypeSymbolApi extends Universe.TypeSymbolApi

    The API of free type symbols.

82. #### abstract type Function >: Null <: Universe.FunctionApi with Universe.TermTree with Universe.SymTree

    Anonymous function, eliminated by compiler phase lambdalift

83. #### trait FunctionApi extends Universe.TermTreeApi with Universe.SymTreeApi

    The API that all functions support

84. #### abstract class FunctionExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Function(vparams, body)`.

85. #### abstract type GenericApply >: Null <: Universe.GenericApplyApi with Universe.TermTree

    Common base class for Apply and TypeApply.

86. #### trait GenericApplyApi extends Universe.TermTreeApi

    The API that all applies support

87. #### abstract type Ident >: Null <: Universe.IdentApi with Universe.RefTree

    A reference to identifier `name`.

88. #### trait IdentApi extends Universe.RefTreeApi

    The API that all idents support

89. #### abstract class IdentExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Ident(qual, name)`.

90. #### abstract type If >: Null <: Universe.IfApi with Universe.TermTree

    Conditional expression

91. #### trait IfApi extends Universe.TermTreeApi

    The API that all ifs support

92. #### abstract class IfExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `If(cond, thenp, elsep)`.

93. #### abstract type ImplDef >: Null <: Universe.ImplDefApi with Universe.MemberDef

    A common base class for class and object definitions.

94. #### trait ImplDefApi extends Universe.MemberDefApi

    The API that all impl defs support

95. #### abstract type Import >: Null <: Universe.ImportApi with Universe.SymTree

    Import clause

96. #### trait ImportApi extends Universe.SymTreeApi

    The API that all imports support

97. #### abstract class ImportExtractor extends AnyRef

    An extractor class to create and pattern match with syntax `Import(expr, selectors)`.

98. #### abstract type ImportSelector >: Null <: Universe.ImportSelectorApi

    Import selector (not a tree, but a component of the `Import` tree)

99. #### trait ImportSelectorApi extends AnyRef

    The API that all import selectors support

100. #### abstract class ImportSelectorExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ImportSelector(name:, namePos, rename, renamePos)`.

101. #### trait Importer extends AnyRef

     This trait provides support for importers, a facility to migrate reflection artifacts between universes.

102. #### trait InstanceMirror extends AnyRef

     A mirror that reflects a runtime value.

103. #### abstract type Internal <: InternalApi

     Definition Classes
       Internals
     See also

       InternalApi

104. #### trait InternalApi extends AnyRef

     Reflection API exhibits a tension inherent to experimental things: on the one hand we want it to grow into a beautiful and robust API, but on the other hand we have to deal with immaturity of underlying mechanisms by providing not very pretty solutions to enable important use cases.

105. #### abstract type LabelDef >: Null <: Universe.LabelDefApi with Universe.DefTree with Universe.TermTree

     A labelled expression.

106. #### trait LabelDefApi extends Universe.DefTreeApi with Universe.TermTreeApi

     The API that all label defs support

107. #### abstract class LabelDefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `LabelDef(name, params, rhs)`.

108. #### trait Liftable[T] extends AnyRef

     A type class that defines a representation of `T` as a `Tree`.

109. #### abstract type Literal >: Null <: Universe.LiteralApi with Universe.TermTree

     Literal

110. #### trait LiteralApi extends Universe.TermTreeApi

     The API that all literals support

111. #### abstract class LiteralExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Literal(value)`.

112. #### abstract type Match >: Null <: Universe.MatchApi with Universe.TermTree

     - Pattern matching expression (before compiler phase explicitouter before 2.

113. #### trait MatchApi extends Universe.TermTreeApi

     The API that all matches support

114. #### abstract class MatchExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Match(selector, cases)`.

115. #### abstract type MemberDef >: Null <: Universe.MemberDefApi with Universe.DefTree

     Common base class for all member definitions: types, classes, objects, packages, vals and vars, defs.

116. #### trait MemberDefApi extends Universe.DefTreeApi

     The API that all member defs support

117. #### abstract type MemberScope >: Null <: Universe.MemberScopeApi with Universe.Scope

     The type of member scopes, as in class definitions, for example.

118. #### trait MemberScopeApi extends Universe.ScopeApi

     The API that all member scopes support

119. #### trait MethodMirror extends AnyRef

     A mirror that reflects a method.

120. #### abstract type MethodSymbol >: Null <: Universe.MethodSymbolApi with Universe.TermSymbol

     The type of method symbols representing def declarations.

121. #### trait MethodSymbolApi extends Universe.TermSymbolApi

     The API of method symbols.

122. #### abstract type MethodType >: Null <: Universe.MethodTypeApi with Universe.Type

     The `MethodType` type signature is used to indicate parameters and result type of a method

123. #### trait MethodTypeApi extends Universe.TypeApi

     The API that all method types support.

124. #### abstract class MethodTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `MethodType(params, respte)` Here, `params` is a potentially empty list of parameter symbols of the method, and `restpe` is the result type of the method.

125. #### abstract type Mirror >: Null <: api.Mirror[Universe.this.type]

     The base type of all mirrors of this universe.

     The base type of all mirrors of this universe.

     This abstract type conforms the base interface for all mirrors defined in scala.reflect.api.Mirror and is gradually refined in specific universes (e.g. `Mirror` of a scala.reflect.api.JavaUniverse is capable of reflection).

     Definition Classes
       Mirrors

126. #### abstract type Modifiers >: Null <: ModifiersApi

     The type of tree modifiers (not a tree, but rather part of DefTrees).

     The type of tree modifiers (not a tree, but rather part of DefTrees).

     Definition Classes
       Trees

127. #### abstract class ModifiersApi extends AnyRef

     The API that all Modifiers support

128. #### abstract class ModifiersExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Modifiers(flags, privateWithin, annotations)`.

129. #### abstract type ModuleDef >: Null <: Universe.ModuleDefApi with Universe.ImplDef

     An object definition, e.

130. #### trait ModuleDefApi extends Universe.ImplDefApi

     The API that all module defs support

131. #### abstract class ModuleDefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ModuleDef(mods, name, impl)`.

132. #### trait ModuleMirror extends Universe.TemplateMirror

     A mirror that reflects a Scala object definition or the static parts of a runtime class.

133. #### abstract type ModuleSymbol >: Null <: Universe.ModuleSymbolApi with Universe.TermSymbol

     The type of module symbols representing object declarations.

134. #### trait ModuleSymbolApi extends Universe.TermSymbolApi

     The API of module symbols.

135. #### abstract type Name >: Null <: NameApi

     The abstract type of names.

     The abstract type of names.

     Definition Classes
       Names

136. #### abstract class NameApi extends AnyRef

     The API of Name instances.

137. #### abstract type NameTree >: Null <: Universe.NameTreeApi with Universe.Tree

     A tree that carries a name, e.

138. #### trait NameTreeApi extends Universe.TreeApi

     The API that all name trees support

139. #### trait NamesApi extends AnyRef

     Defines standard names, common for term and type names: These can be accessed via the nme and tpnme members.

140. #### abstract type New >: Null <: Universe.NewApi with Universe.TermTree

     Object instantiation

141. #### trait NewApi extends Universe.TermTreeApi

     The API that all news support

142. #### abstract class NewExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `New(tpt)`.

143. #### abstract type NullaryMethodType >: Null <: Universe.NullaryMethodTypeApi with Universe.Type

     The `NullaryMethodType` type signature is used for parameterless methods with declarations of the form `def foo: T`

144. #### trait NullaryMethodTypeApi extends Universe.TypeApi

     The API that all nullary method types support.

145. #### abstract class NullaryMethodTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `NullaryMethodType(resultType)`.

146. #### abstract type PackageDef >: Null <: Universe.PackageDefApi with Universe.MemberDef

     A packaging, such as `package pid { stats }`

147. #### trait PackageDefApi extends Universe.MemberDefApi

     The API that all package defs support

148. #### abstract class PackageDefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `PackageDef(pid, stats)`.

149. #### abstract type PolyType >: Null <: Universe.PolyTypeApi with Universe.Type

     The `PolyType` type signature is used for polymorphic methods that have at least one type parameter.

150. #### trait PolyTypeApi extends Universe.TypeApi

     The API that all polymorphic types support.

151. #### abstract class PolyTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `PolyType(typeParams, resultType)`.

152. #### abstract type Position >: Null <: api.Position { type Pos = Universe.this.Position }

     Defines a universe-specific notion of positions.

     Defines a universe-specific notion of positions. The main documentation entry about positions is located at scala.reflect.api.Position.

     Definition Classes
       Positions

153. #### implicit class Quasiquote extends AnyRef

     Implicit class that introduces `q`, `tq`, `cq,` `p` and `fq` string interpolators that are also known as quasiquotes.

154. #### abstract type RefTree >: Null <: Universe.RefTreeApi with Universe.SymTree with Universe.NameTree

     A tree which references a symbol-carrying entity.

155. #### trait RefTreeApi extends Universe.SymTreeApi with Universe.NameTreeApi

     The API that all ref trees support

156. #### abstract class RefTreeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `RefTree(qual, name)`.

157. #### abstract type ReferenceToBoxed >: Null <: Universe.ReferenceToBoxedApi with Universe.TermTree

     Marks underlying reference to id as boxed.

158. #### trait ReferenceToBoxedApi extends Universe.TermTreeApi

     The API that all references support

159. #### abstract class ReferenceToBoxedExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ReferenceToBoxed(ident)`.

160. #### abstract type RefinedType >: Null <: Universe.RefinedTypeApi with Universe.CompoundType

     The `RefinedType` type defines types of any of the forms on the left, with their RefinedType representations to the right.

161. #### trait RefinedTypeApi extends Universe.TypeApi

     The API that all refined types support.

162. #### abstract class RefinedTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `RefinedType(parents, decls)` Here, `parents` is the list of parent types of the class, and `decls` is the scope containing all declarations in the class.

163. #### trait ReflectiveMirror extends api.Mirror[Mirrors.this.type]

     A mirror that reflects instances and static classes.

164. #### trait ReificationSupportApi extends AnyRef

     This is an internal implementation class.

165. #### abstract type Return >: Null <: Universe.ReturnApi with Universe.SymTree with Universe.TermTree

     Return expression

166. #### trait ReturnApi extends Universe.TermTreeApi

     The API that all returns support

167. #### abstract class ReturnExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Return(expr)`.

168. #### abstract type RuntimeClass >: Null <: AnyRef

     Abstracts the runtime representation of a class on the underlying platform.

     Abstracts the runtime representation of a class on the underlying platform.

     Definition Classes
       Mirrors

169. #### trait RuntimeClassApi extends AnyRef

     Has no special methods.

170. #### trait RuntimeMirror extends api.Mirror[Mirrors.this.type] with Universe.ReflectiveMirror

     The API of a mirror for a reflective universe.

171. #### abstract type Scope >: Null <: Universe.ScopeApi

     The base type of all scopes.

172. #### trait ScopeApi extends Iterable[Universe.Symbol]

     The API that all scopes support

173. #### abstract type Select >: Null <: Universe.SelectApi with Universe.RefTree

     A member selection <qualifier> .

174. #### trait SelectApi extends Universe.RefTreeApi

     The API that all selects support

175. #### abstract class SelectExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Select(qual, name)`.

176. #### abstract type SelectFromTypeTree >: Null <: Universe.SelectFromTypeTreeApi with Universe.TypTree with Universe.RefTree

     Type selection <qualifier> # <name>, eliminated by RefCheck

177. #### trait SelectFromTypeTreeApi extends Universe.TypTreeApi with Universe.RefTreeApi

     The API that all selects from type trees support

178. #### abstract class SelectFromTypeTreeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `SelectFromTypeTree(qualifier, name)`.

179. #### abstract type SingleType >: Null <: Universe.SingleTypeApi with Universe.SingletonType

     The `SingleType` type describes types of any of the forms on the left, with their TypeRef representations to the right.

180. #### trait SingleTypeApi extends Universe.TypeApi

     The API that all single types support.

181. #### abstract class SingleTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `SingleType(pre, sym)` Here, `pre` is the prefix of the single-type, and `sym` is the stable value symbol referred to by the single-type.

182. #### abstract type SingletonType >: Null <: Universe.SingletonTypeApi with Universe.Type

     The type of Scala singleton types, i.

183. #### trait SingletonTypeApi extends AnyRef

     Has no special methods.

184. #### abstract type SingletonTypeTree >: Null <: Universe.SingletonTypeTreeApi with Universe.TypTree

     Singleton type, eliminated by RefCheck

185. #### trait SingletonTypeTreeApi extends Universe.TypTreeApi

     The API that all singleton type trees support

186. #### abstract class SingletonTypeTreeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `SingletonTypeTree(ref)`.

187. #### trait StandardLiftableInstances extends AnyRef

     Definition Classes
       StandardLiftables

188. #### trait StandardTypes extends AnyRef

     Defines standard types.

189. #### trait StandardUnliftableInstances extends AnyRef

     Definition Classes
       StandardLiftables

190. #### abstract type Star >: Null <: Universe.StarApi with Universe.TermTree

     Repetition of pattern.

191. #### trait StarApi extends Universe.TermTreeApi

     The API that all stars support

192. #### abstract class StarExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Star(elem)`.

193. #### abstract type Super >: Null <: Universe.SuperApi with Universe.TermTree

     Super reference, where `qual` is the corresponding `this` reference.

194. #### trait SuperApi extends Universe.TermTreeApi

     The API that all supers support

195. #### abstract class SuperExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Super(qual, mix)`.

196. #### abstract type SuperType >: Null <: Universe.SuperTypeApi with Universe.SingletonType

     The `SuperType` type is not directly written, but arises when `C.super` is used as a prefix in a `TypeRef` or `SingleType`.

197. #### trait SuperTypeApi extends Universe.TypeApi

     The API that all super types support.

198. #### abstract class SuperTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `SingleType(thistpe, supertpe)`

199. #### abstract type SymTree >: Null <: Universe.SymTreeApi with Universe.Tree

     A tree that carries a symbol, e.

200. #### trait SymTreeApi extends Universe.TreeApi

     The API that all sym trees support

201. #### abstract type Symbol >: Null <: Universe.SymbolApi

     The type of symbols representing declarations.

202. #### trait SymbolApi extends AnyRef

     The API of symbols.

203. #### abstract type Template >: Null <: Universe.TemplateApi with Universe.SymTree

     Instantiation template of a class or trait

204. #### trait TemplateApi extends Universe.SymTreeApi

     The API that all templates support

205. #### abstract class TemplateExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Template(parents, self, body)`.

206. #### trait TemplateMirror extends AnyRef

     A mirror that reflects the instance or static parts of a runtime class.

207. #### abstract type TermName >: Null <: TermNameApi with Name

     The abstract type of names representing types.

     The abstract type of names representing types.

     Definition Classes
       Names

208. #### trait TermNameApi extends AnyRef

     Has no special methods.

209. #### abstract class TermNameExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TermName(s)`.

210. #### trait TermNamesApi extends Universe.NamesApi

     Defines standard term names that can be accessed via the nme member.

211. #### abstract type TermSymbol >: Null <: Universe.TermSymbolApi with Universe.Symbol

     The type of term symbols representing val, var, def, and object declarations as well as packages and value parameters.

212. #### trait TermSymbolApi extends Universe.SymbolApi

     The API of term symbols.

213. #### abstract type TermTree >: Null <: Universe.TermTreeApi with Universe.Tree

     A tree for a term.

214. #### trait TermTreeApi extends Universe.TreeApi

     The API that all term trees support

215. #### abstract type This >: Null <: Universe.ThisApi with Universe.TermTree with Universe.SymTree

     Self reference

216. #### trait ThisApi extends Universe.TermTreeApi with Universe.SymTreeApi

     The API that all thises support

217. #### abstract class ThisExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `This(qual)`.

218. #### abstract type ThisType >: Null <: Universe.ThisTypeApi with Universe.SingletonType

     A singleton type that describes types of the form on the left with the corresponding `ThisType` representation to the right:

219. #### trait ThisTypeApi extends Universe.TypeApi

     The API that all this types support.

220. #### abstract class ThisTypeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ThisType(sym)` where `sym` is the class prefix of the this type.

221. #### abstract type Throw >: Null <: Universe.ThrowApi with Universe.TermTree

     Throw expression

222. #### trait ThrowApi extends Universe.TermTreeApi

     The API that all tries support

223. #### abstract class ThrowExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Throw(expr)`.

224. #### abstract class Transformer extends AnyRef

     A class that implement a default tree transformation strategy: breadth-first component-wise cloning.

225. #### class Traverser extends AnyRef

     A class that implement a default tree traversal strategy: breadth-first component-wise.

226. #### abstract type Tree >: Null <: Universe.TreeApi

     The type of Scala abstract syntax trees.

227. #### trait TreeApi extends Product

     The API that all trees support.

228. #### abstract type TreeCopier >: Null <: Universe.TreeCopierOps

     The type of standard (lazy) tree copiers.

229. #### abstract class TreeCopierOps extends AnyRef

     The API of a tree copier.

230. #### trait TreePrinter extends AnyRef

231. #### abstract type Try >: Null <: Universe.TryApi with Universe.TermTree

     Try catch node

232. #### trait TryApi extends Universe.TermTreeApi

     The API that all tries support

233. #### abstract class TryExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Try(block, catches, finalizer)`.

234. #### abstract type TypTree >: Null <: Universe.TypTreeApi with Universe.Tree

     A tree for a type.

235. #### trait TypTreeApi extends Universe.TreeApi

     The API that all typ trees support

236. #### abstract type Type >: Null <: Universe.TypeApi

     The type of Scala types, and also Scala type signatures.

237. #### abstract class TypeApi extends AnyRef

     The API of types.

238. #### abstract type TypeApply >: Null <: Universe.TypeApplyApi with Universe.GenericApply

     Explicit type application.

239. #### trait TypeApplyApi extends Universe.GenericApplyApi

     The API that all type applies support

240. #### abstract class TypeApplyExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeApply(fun, args)`.

241. #### abstract type TypeBounds >: Null <: Universe.TypeBoundsApi with Universe.Type

     The `TypeBounds` type signature is used to indicate lower and upper type bounds of type parameters and abstract types.

242. #### trait TypeBoundsApi extends Universe.TypeApi

     The API that all type bounds support.

243. #### abstract class TypeBoundsExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeBound(lower, upper)` Here, `lower` is the lower bound of the `TypeBounds` pair, and `upper` is the upper bound.

244. #### abstract type TypeBoundsTree >: Null <: Universe.TypeBoundsTreeApi with Universe.TypTree

     Type bounds tree node

245. #### trait TypeBoundsTreeApi extends Universe.TypTreeApi

     The API that all type bound trees support

246. #### abstract class TypeBoundsTreeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeBoundsTree(lo, hi)`.

247. #### abstract type TypeDef >: Null <: Universe.TypeDefApi with Universe.MemberDef

     An abstract type, a type parameter, or a type alias.

248. #### trait TypeDefApi extends Universe.MemberDefApi

     The API that all type defs support

249. #### abstract class TypeDefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeDef(mods, name, tparams, rhs)`.

250. #### abstract type TypeName >: Null <: TypeNameApi with Name

     The abstract type of names representing terms.

     The abstract type of names representing terms.

     Definition Classes
       Names

251. #### trait TypeNameApi extends AnyRef

     Has no special methods.

252. #### abstract class TypeNameExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeName(s)`.

253. #### trait TypeNamesApi extends Universe.NamesApi

     Defines standard type names that can be accessed via the tpnme member.

254. #### abstract type TypeRef >: Null <: Universe.TypeRefApi with Universe.Type

     The `TypeRef` type describes types of any of the forms on the left, with their TypeRef representations to the right.

255. #### trait TypeRefApi extends Universe.TypeApi

     The API that all type refs support.

256. #### abstract class TypeRefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeRef(pre, sym, args)` Here, `pre` is the prefix of the type reference, `sym` is the symbol referred to by the type reference, and `args` is a possible empty list of type argumenrts.

257. #### abstract type TypeSymbol >: Null <: Universe.TypeSymbolApi with Universe.Symbol

     The type of type symbols representing type, class, and trait declarations, as well as type parameters.

258. #### trait TypeSymbolApi extends Universe.SymbolApi

     The API of type symbols.

259. #### trait TypeTag[T] extends Universe.WeakTypeTag[T] with Equals with Serializable

     A `TypeTag` is a scala.reflect.api.TypeTags#WeakTypeTag with the additional static guarantee that all type references are concrete, i.

260. #### abstract type TypeTree >: Null <: Universe.TypeTreeApi with Universe.TypTree

     A synthetic tree holding an arbitrary type.

261. #### trait TypeTreeApi extends Universe.TypTreeApi

     The API that all type trees support

262. #### abstract class TypeTreeExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `TypeTree()`.

263. #### abstract type Typed >: Null <: Universe.TypedApi with Universe.TermTree

     Type annotation, eliminated by compiler phase cleanup

264. #### trait TypedApi extends Universe.TermTreeApi

     The API that all typeds support

265. #### abstract class TypedExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `Typed(expr, tpt)`.

266. #### abstract type UnApply >: Null <: Universe.UnApplyApi with Universe.TermTree

     Used to represent `unapply` methods in pattern matching.

267. #### trait UnApplyApi extends Universe.TermTreeApi

     The API that all unapplies support

268. #### abstract class UnApplyExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `UnApply(fun, args)`.

269. #### trait Unliftable[T] extends AnyRef

     A type class that defines a way to extract instance of `T` from a `Tree`.

270. #### abstract type ValDef >: Null <: Universe.ValDefApi with Universe.ValOrDefDef

     Broadly speaking, a value definition.

271. #### trait ValDefApi extends Universe.ValOrDefDefApi

     The API that all val defs support

272. #### abstract class ValDefExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ValDef(mods, name, tpt, rhs)`.

273. #### abstract type ValOrDefDef >: Null <: Universe.ValOrDefDefApi with Universe.MemberDef

     A common base class for ValDefs and DefDefs.

274. #### trait ValOrDefDefApi extends Universe.MemberDefApi

     The API that all val defs and def defs support

275. #### trait WeakTypeTag[T] extends Equals with Serializable

     If an implicit value of type `WeakTypeTag[T]` is required, the compiler will create one, and the reflective representation of `T` can be accessed via the `tpe` field.

276. #### abstract type ArrayArgument >: Null <: Universe.ArrayArgumentApi with Universe.JavaArgument

     An array argument to a Java annotation as in `@Target(value={TYPE,FIELD,METHOD,PARAMETER})`

277. #### trait ArrayArgumentApi extends AnyRef

     API of `ArrayArgument` instances.

278. #### abstract class ArrayArgumentExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `ArrayArgument(args)` where `args` is the argument array.

279. #### type BuildApi = ReificationSupportApi

     Definition Classes
       Internals
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `internal.ReificationSupportApi` instead

280. #### abstract type JavaArgument >: Null <: Universe.JavaArgumentApi

     A Java annotation argument

281. #### trait JavaArgumentApi extends AnyRef

     Has no special methods.

282. #### abstract type LiteralArgument >: Null <: Universe.LiteralArgumentApi with Universe.JavaArgument

     A literal argument to a Java annotation as `"Use X instead"` in `@Deprecated("Use X instead")`

283. #### trait LiteralArgumentApi extends AnyRef

     The API of `LiteralArgument` instances.

284. #### abstract class LiteralArgumentExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `LiteralArgument(value)` where `value` is the constant argument.

285. #### type ModifiersCreator = ModifiersExtractor

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use ModifiersExtractor instead

286. #### abstract type NestedArgument >: Null <: Universe.NestedArgumentApi with Universe.JavaArgument

     A nested annotation argument to a Java annotation as `@Nested` in `@Outer(@Nested)`.

287. #### trait NestedArgumentApi extends AnyRef

     API of `NestedArgument` instances.

288. #### abstract class NestedArgumentExtractor extends AnyRef

     An extractor class to create and pattern match with syntax `NestedArgument(annotation)` where `annotation` is the nested annotation.

### Abstract Value Members

1. #### abstract val Alternative: AlternativeExtractor

   The constructor/extractor for `Alternative` instances.

   The constructor/extractor for `Alternative` instances.

   Definition Classes
     Trees

2. #### implicit abstract val AlternativeTag: ClassTag[Alternative]

   Definition Classes
     ImplicitTags

3. #### abstract val Annotated: AnnotatedExtractor

   The constructor/extractor for `Annotated` instances.

   The constructor/extractor for `Annotated` instances.

   Definition Classes
     Trees

4. #### implicit abstract val AnnotatedTag: ClassTag[Annotated]

   Definition Classes
     ImplicitTags

5. #### abstract val AnnotatedType: AnnotatedTypeExtractor

   The constructor/extractor for `AnnotatedType` instances.

   The constructor/extractor for `AnnotatedType` instances.

   Definition Classes
     Types

6. #### implicit abstract val AnnotatedTypeTag: ClassTag[AnnotatedType]

   Definition Classes
     ImplicitTags

7. #### abstract val Annotation: AnnotationExtractor

   The constructor/extractor for `Annotation` instances.

   The constructor/extractor for `Annotation` instances.

   Definition Classes
     Annotations

8. #### implicit abstract val AnnotationTag: ClassTag[Annotation]

   Definition Classes
     ImplicitTags

9. #### abstract val AppliedTypeTree: AppliedTypeTreeExtractor

   The constructor/extractor for `AppliedTypeTree` instances.

   The constructor/extractor for `AppliedTypeTree` instances.

   Definition Classes
     Trees

10. #### implicit abstract val AppliedTypeTreeTag: ClassTag[AppliedTypeTree]

    Definition Classes
      ImplicitTags

11. #### abstract val Apply: ApplyExtractor

    The constructor/extractor for `Apply` instances.

    The constructor/extractor for `Apply` instances.

    Definition Classes
      Trees

12. #### implicit abstract val ApplyTag: ClassTag[Apply]

    Definition Classes
      ImplicitTags

13. #### implicit abstract val ArrayArgumentTag: ClassTag[ArrayArgument]

    Definition Classes
      ImplicitTags

14. #### abstract val Assign: AssignExtractor

    The constructor/extractor for `Assign` instances.

    The constructor/extractor for `Assign` instances.

    Definition Classes
      Trees

15. #### abstract val AssignOrNamedArg: AssignOrNamedArgExtractor

    The constructor/extractor for `AssignOrNamedArg` instances.

    The constructor/extractor for `AssignOrNamedArg` instances.

    Definition Classes
      Trees

16. #### implicit abstract val AssignOrNamedArgTag: ClassTag[AssignOrNamedArg]

    Definition Classes
      ImplicitTags

17. #### implicit abstract val AssignTag: ClassTag[Assign]

    Definition Classes
      ImplicitTags

18. #### abstract val Bind: BindExtractor

    The constructor/extractor for `Bind` instances.

    The constructor/extractor for `Bind` instances.

    Definition Classes
      Trees

19. #### implicit abstract val BindTag: ClassTag[Bind]

    Definition Classes
      ImplicitTags

20. #### abstract val Block: BlockExtractor

    The constructor/extractor for `Block` instances.

    The constructor/extractor for `Block` instances.

    Definition Classes
      Trees

21. #### implicit abstract val BlockTag: ClassTag[Block]

    Definition Classes
      ImplicitTags

22. #### abstract val BoundedWildcardType: BoundedWildcardTypeExtractor

    The constructor/extractor for `BoundedWildcardType` instances.

    The constructor/extractor for `BoundedWildcardType` instances.

    Definition Classes
      Types

23. #### implicit abstract val BoundedWildcardTypeTag: ClassTag[BoundedWildcardType]

    Definition Classes
      ImplicitTags

24. #### abstract val CaseDef: CaseDefExtractor

    The constructor/extractor for `CaseDef` instances.

    The constructor/extractor for `CaseDef` instances.

    Definition Classes
      Trees

25. #### implicit abstract val CaseDefTag: ClassTag[CaseDef]

    Definition Classes
      ImplicitTags

26. #### abstract val ClassDef: ClassDefExtractor

    The constructor/extractor for `ClassDef` instances.

    The constructor/extractor for `ClassDef` instances.

    Definition Classes
      Trees

27. #### implicit abstract val ClassDefTag: ClassTag[ClassDef]

    Definition Classes
      ImplicitTags

28. #### abstract val ClassInfoType: ClassInfoTypeExtractor

    The constructor/extractor for `ClassInfoType` instances.

    The constructor/extractor for `ClassInfoType` instances.

    Definition Classes
      Types

29. #### implicit abstract val ClassInfoTypeTag: ClassTag[ClassInfoType]

    Definition Classes
      ImplicitTags

30. #### implicit abstract val ClassSymbolTag: ClassTag[ClassSymbol]

    Definition Classes
      ImplicitTags

31. #### implicit abstract val CompoundTypeTag: ClassTag[CompoundType]

    Definition Classes
      ImplicitTags

32. #### abstract val CompoundTypeTree: CompoundTypeTreeExtractor

    The constructor/extractor for `CompoundTypeTree` instances.

    The constructor/extractor for `CompoundTypeTree` instances.

    Definition Classes
      Trees

33. #### implicit abstract val CompoundTypeTreeTag: ClassTag[CompoundTypeTree]

    Definition Classes
      ImplicitTags

34. #### abstract val Constant: ConstantExtractor

    The constructor/extractor for `Constant` instances.

    The constructor/extractor for `Constant` instances.

    Definition Classes
      Constants

35. #### implicit abstract val ConstantTag: ClassTag[Constant]

    Definition Classes
      ImplicitTags

36. #### abstract val ConstantType: ConstantTypeExtractor

    The constructor/extractor for `ConstantType` instances.

    The constructor/extractor for `ConstantType` instances.

    Definition Classes
      Types

37. #### implicit abstract val ConstantTypeTag: ClassTag[ConstantType]

    Definition Classes
      ImplicitTags

38. #### abstract val DefDef: DefDefExtractor

    The constructor/extractor for `DefDef` instances.

    The constructor/extractor for `DefDef` instances.

    Definition Classes
      Trees

39. #### implicit abstract val DefDefTag: ClassTag[DefDef]

    Definition Classes
      ImplicitTags

40. #### implicit abstract val DefTreeTag: ClassTag[DefTree]

    Definition Classes
      ImplicitTags

41. #### abstract val EmptyTree: Tree

    The empty tree

    The empty tree

    Definition Classes
      Trees

42. #### abstract val ExistentialType: ExistentialTypeExtractor

    The constructor/extractor for `ExistentialType` instances.

    The constructor/extractor for `ExistentialType` instances.

    Definition Classes
      Types

43. #### implicit abstract val ExistentialTypeTag: ClassTag[ExistentialType]

    Definition Classes
      ImplicitTags

44. #### abstract val ExistentialTypeTree: ExistentialTypeTreeExtractor

    The constructor/extractor for `ExistentialTypeTree` instances.

    The constructor/extractor for `ExistentialTypeTree` instances.

    Definition Classes
      Trees

45. #### implicit abstract val ExistentialTypeTreeTag: ClassTag[ExistentialTypeTree]

    Definition Classes
      ImplicitTags

46. #### abstract val Flag: FlagValues

    A module that contains all possible values that can constitute flag sets.

    A module that contains all possible values that can constitute flag sets.

    Definition Classes
      FlagSets

47. #### implicit abstract val FlagSetTag: ClassTag[FlagSet]

    Definition Classes
      ImplicitTags

48. #### implicit abstract val FreeTermSymbolTag: ClassTag[FreeTermSymbol]

    Tag that preserves the identity of `FreeTermSymbol` in the face of erasure.

    Tag that preserves the identity of `FreeTermSymbol` in the face of erasure. Can be used for pattern matching, instance tests, serialization and the like.

    Definition Classes
      Internals

49. #### implicit abstract val FreeTypeSymbolTag: ClassTag[FreeTypeSymbol]

    Tag that preserves the identity of `FreeTermSymbol` in the face of erasure.

    Tag that preserves the identity of `FreeTermSymbol` in the face of erasure. Can be used for pattern matching, instance tests, serialization and the like.

    Definition Classes
      Internals

50. #### abstract val Function: FunctionExtractor

    The constructor/extractor for `Function` instances.

    The constructor/extractor for `Function` instances.

    Definition Classes
      Trees

51. #### implicit abstract val FunctionTag: ClassTag[Function]

    Definition Classes
      ImplicitTags

52. #### implicit abstract val GenericApplyTag: ClassTag[GenericApply]

    Definition Classes
      ImplicitTags

53. #### abstract def Ident(sym: Symbol): Ident

    A factory method for `Ident` nodes.

    A factory method for `Ident` nodes.

    Definition Classes
      Trees

54. #### abstract val Ident: IdentExtractor

    The constructor/extractor for `Ident` instances.

    The constructor/extractor for `Ident` instances.

    Definition Classes
      Trees

55. #### implicit abstract val IdentTag: ClassTag[Ident]

    Definition Classes
      ImplicitTags

56. #### abstract val If: IfExtractor

    The constructor/extractor for `If` instances.

    The constructor/extractor for `If` instances.

    Definition Classes
      Trees

57. #### implicit abstract val IfTag: ClassTag[If]

    Definition Classes
      ImplicitTags

58. #### implicit abstract val ImplDefTag: ClassTag[ImplDef]

    Definition Classes
      ImplicitTags

59. #### abstract val Import: ImportExtractor

    The constructor/extractor for `Import` instances.

    The constructor/extractor for `Import` instances.

    Definition Classes
      Trees

60. #### abstract val ImportSelector: ImportSelectorExtractor

    The constructor/extractor for `ImportSelector` instances.

    The constructor/extractor for `ImportSelector` instances.

    Definition Classes
      Trees

61. #### implicit abstract val ImportSelectorTag: ClassTag[ImportSelector]

    Definition Classes
      ImplicitTags

62. #### implicit abstract val ImportTag: ClassTag[Import]

    Definition Classes
      ImplicitTags

63. #### implicit abstract val JavaArgumentTag: ClassTag[JavaArgument]

    Definition Classes
      ImplicitTags

64. #### abstract val LabelDef: LabelDefExtractor

    The constructor/extractor for `LabelDef` instances.

    The constructor/extractor for `LabelDef` instances.

    Definition Classes
      Trees

65. #### implicit abstract val LabelDefTag: ClassTag[LabelDef]

    Definition Classes
      ImplicitTags

66. #### abstract val Literal: LiteralExtractor

    The constructor/extractor for `Literal` instances.

    The constructor/extractor for `Literal` instances.

    Definition Classes
      Trees

67. #### implicit abstract val LiteralArgumentTag: ClassTag[LiteralArgument]

    Definition Classes
      ImplicitTags

68. #### implicit abstract val LiteralTag: ClassTag[Literal]

    Definition Classes
      ImplicitTags

69. #### abstract val Match: MatchExtractor

    The constructor/extractor for `Match` instances.

    The constructor/extractor for `Match` instances.

    Definition Classes
      Trees

70. #### implicit abstract val MatchTag: ClassTag[Match]

    Definition Classes
      ImplicitTags

71. #### implicit abstract val MemberDefTag: ClassTag[MemberDef]

    Definition Classes
      ImplicitTags

72. #### implicit abstract val MemberScopeTag: ClassTag[MemberScope]

    Definition Classes
      ImplicitTags

73. #### implicit abstract val MethodSymbolTag: ClassTag[MethodSymbol]

    Definition Classes
      ImplicitTags

74. #### abstract val MethodType: MethodTypeExtractor

    The constructor/extractor for `MethodType` instances.

    The constructor/extractor for `MethodType` instances.

    Definition Classes
      Types

75. #### implicit abstract val MethodTypeTag: ClassTag[MethodType]

    Definition Classes
      ImplicitTags

76. #### implicit abstract val MirrorTag: ClassTag[Mirror]

    Definition Classes
      ImplicitTags

77. #### abstract val Modifiers: ModifiersExtractor

    The constructor/extractor for `Modifiers` instances.

    The constructor/extractor for `Modifiers` instances.

    Definition Classes
      Trees

78. #### implicit abstract val ModifiersTag: ClassTag[Modifiers]

    Definition Classes
      ImplicitTags

79. #### abstract val ModuleDef: ModuleDefExtractor

    The constructor/extractor for `ModuleDef` instances.

    The constructor/extractor for `ModuleDef` instances.

    Definition Classes
      Trees

80. #### implicit abstract val ModuleDefTag: ClassTag[ModuleDef]

    Definition Classes
      ImplicitTags

81. #### implicit abstract val ModuleSymbolTag: ClassTag[ModuleSymbol]

    Definition Classes
      ImplicitTags

82. #### implicit abstract val NameTag: ClassTag[Name]

    Definition Classes
      ImplicitTags

83. #### implicit abstract val NameTreeTag: ClassTag[NameTree]

    Definition Classes
      ImplicitTags

84. #### implicit abstract val NestedArgumentTag: ClassTag[NestedArgument]

    Definition Classes
      ImplicitTags

85. #### abstract val New: NewExtractor

    The constructor/extractor for `New` instances.

    The constructor/extractor for `New` instances.

    Definition Classes
      Trees

86. #### implicit abstract val NewTag: ClassTag[New]

    Definition Classes
      ImplicitTags

87. #### abstract val NoFlags: FlagSet

    The empty set of flags

    The empty set of flags

    Definition Classes
      FlagSets

88. #### abstract val NoPosition: Position

    A special "missing" position.

    A special "missing" position.

    Definition Classes
      Positions

89. #### abstract val NoPrefix: Type

    This constant is used as a special value denoting the empty prefix in a path dependent type.

    This constant is used as a special value denoting the empty prefix in a path dependent type. For instance `x.type` is represented as `SingleType(NoPrefix, <x>)`, where `<x>` stands for the symbol for `x`.

    Definition Classes
      Types

90. #### abstract val NoSymbol: Symbol

    A special "missing" symbol.

    A special "missing" symbol. Commonly used in the API to denote a default or empty value.

    Definition Classes
      Symbols

91. #### abstract val NoType: Type

    This constant is used as a special value that indicates that no meaningful type exists.

    This constant is used as a special value that indicates that no meaningful type exists.

    Definition Classes
      Types

92. #### abstract val NullaryMethodType: NullaryMethodTypeExtractor

    The constructor/extractor for `NullaryMethodType` instances.

    The constructor/extractor for `NullaryMethodType` instances.

    Definition Classes
      Types

93. #### implicit abstract val NullaryMethodTypeTag: ClassTag[NullaryMethodType]

    Definition Classes
      ImplicitTags

94. #### abstract val PackageDef: PackageDefExtractor

    The constructor/extractor for `PackageDef` instances.

    The constructor/extractor for `PackageDef` instances.

    Definition Classes
      Trees

95. #### implicit abstract val PackageDefTag: ClassTag[PackageDef]

    Definition Classes
      ImplicitTags

96. #### abstract val PolyType: PolyTypeExtractor

    The constructor/extractor for `PolyType` instances.

    The constructor/extractor for `PolyType` instances.

    Definition Classes
      Types

97. #### implicit abstract val PolyTypeTag: ClassTag[PolyType]

    Definition Classes
      ImplicitTags

98. #### implicit abstract val PositionTag: ClassTag[Position]

    Definition Classes
      ImplicitTags

99. #### abstract val RefTree: RefTreeExtractor

    The constructor/extractor for `RefTree` instances.

    The constructor/extractor for `RefTree` instances.

    Definition Classes
      Trees

100. #### implicit abstract val RefTreeTag: ClassTag[RefTree]

     Definition Classes
       ImplicitTags

101. #### abstract val ReferenceToBoxed: ReferenceToBoxedExtractor

     The constructor/extractor for `ReferenceToBoxed` instances.

     The constructor/extractor for `ReferenceToBoxed` instances.

     Definition Classes
       Internals

102. #### implicit abstract val ReferenceToBoxedTag: ClassTag[ReferenceToBoxed]

     Tag that preserves the identity of `ReferenceToBoxed` in the face of erasure.

     Tag that preserves the identity of `ReferenceToBoxed` in the face of erasure. Can be used for pattern matching, instance tests, serialization and the like.

     Definition Classes
       Internals

103. #### abstract val RefinedType: RefinedTypeExtractor

     The constructor/extractor for `RefinedType` instances.

     The constructor/extractor for `RefinedType` instances.

     Definition Classes
       Types

104. #### implicit abstract val RefinedTypeTag: ClassTag[RefinedType]

     Definition Classes
       ImplicitTags

105. #### abstract val Return: ReturnExtractor

     The constructor/extractor for `Return` instances.

     The constructor/extractor for `Return` instances.

     Definition Classes
       Trees

106. #### implicit abstract val ReturnTag: ClassTag[Return]

     Definition Classes
       ImplicitTags

107. #### implicit abstract val RuntimeClassTag: ClassTag[RuntimeClass]

     Definition Classes
       ImplicitTags

108. #### implicit abstract val ScopeTag: ClassTag[Scope]

     Definition Classes
       ImplicitTags

109. #### abstract def Select(qualifier: Tree, sym: Symbol): Select

     A factory method for `Select` nodes.

     A factory method for `Select` nodes.

     Definition Classes
       Trees

110. #### abstract val Select: SelectExtractor

     The constructor/extractor for `Select` instances.

     The constructor/extractor for `Select` instances.

     Definition Classes
       Trees

111. #### abstract val SelectFromTypeTree: SelectFromTypeTreeExtractor

     The constructor/extractor for `SelectFromTypeTree` instances.

     The constructor/extractor for `SelectFromTypeTree` instances.

     Definition Classes
       Trees

112. #### implicit abstract val SelectFromTypeTreeTag: ClassTag[SelectFromTypeTree]

     Definition Classes
       ImplicitTags

113. #### implicit abstract val SelectTag: ClassTag[Select]

     Definition Classes
       ImplicitTags

114. #### abstract val SingleType: SingleTypeExtractor

     The constructor/extractor for `SingleType` instances.

     The constructor/extractor for `SingleType` instances.

     Definition Classes
       Types

115. #### implicit abstract val SingleTypeTag: ClassTag[SingleType]

     Definition Classes
       ImplicitTags

116. #### implicit abstract val SingletonTypeTag: ClassTag[SingletonType]

     Definition Classes
       ImplicitTags

117. #### abstract val SingletonTypeTree: SingletonTypeTreeExtractor

     The constructor/extractor for `SingletonTypeTree` instances.

     The constructor/extractor for `SingletonTypeTree` instances.

     Definition Classes
       Trees

118. #### implicit abstract val SingletonTypeTreeTag: ClassTag[SingletonTypeTree]

     Definition Classes
       ImplicitTags

119. #### abstract val Star: StarExtractor

     The constructor/extractor for `Star` instances.

     The constructor/extractor for `Star` instances.

     Definition Classes
       Trees

120. #### implicit abstract val StarTag: ClassTag[Star]

     Definition Classes
       ImplicitTags

121. #### abstract val Super: SuperExtractor

     The constructor/extractor for `Super` instances.

     The constructor/extractor for `Super` instances.

     Definition Classes
       Trees

122. #### implicit abstract val SuperTag: ClassTag[Super]

     Definition Classes
       ImplicitTags

123. #### abstract val SuperType: SuperTypeExtractor

     The constructor/extractor for `SuperType` instances.

     The constructor/extractor for `SuperType` instances.

     Definition Classes
       Types

124. #### implicit abstract val SuperTypeTag: ClassTag[SuperType]

     Definition Classes
       ImplicitTags

125. #### implicit abstract val SymTreeTag: ClassTag[SymTree]

     Definition Classes
       ImplicitTags

126. #### implicit abstract val SymbolTag: ClassTag[Symbol]

     Definition Classes
       ImplicitTags

127. #### abstract val Template: TemplateExtractor

     The constructor/extractor for `Template` instances.

     The constructor/extractor for `Template` instances.

     Definition Classes
       Trees

128. #### implicit abstract val TemplateTag: ClassTag[Template]

     Definition Classes
       ImplicitTags

129. #### abstract val TermName: TermNameExtractor

     The constructor/extractor for `TermName` instances.

     The constructor/extractor for `TermName` instances.

     Definition Classes
       Names

130. #### implicit abstract val TermNameTag: ClassTag[TermName]

     Definition Classes
       ImplicitTags

131. #### implicit abstract val TermSymbolTag: ClassTag[TermSymbol]

     Definition Classes
       ImplicitTags

132. #### implicit abstract val TermTreeTag: ClassTag[TermTree]

     Definition Classes
       ImplicitTags

133. #### abstract def This(sym: Symbol): Tree

     A factory method for `This` nodes.

     A factory method for `This` nodes.

     Definition Classes
       Trees

134. #### abstract val This: ThisExtractor

     The constructor/extractor for `This` instances.

     The constructor/extractor for `This` instances.

     Definition Classes
       Trees

135. #### implicit abstract val ThisTag: ClassTag[This]

     Definition Classes
       ImplicitTags

136. #### abstract val ThisType: ThisTypeExtractor

     The constructor/extractor for `ThisType` instances.

     The constructor/extractor for `ThisType` instances.

     Definition Classes
       Types

137. #### implicit abstract val ThisTypeTag: ClassTag[ThisType]

     Definition Classes
       ImplicitTags

138. #### abstract val Throw: ThrowExtractor

     The constructor/extractor for `Throw` instances.

     The constructor/extractor for `Throw` instances.

     Definition Classes
       Trees

139. #### implicit abstract val ThrowTag: ClassTag[Throw]

     Definition Classes
       ImplicitTags

140. #### implicit abstract val TreeCopierTag: ClassTag[TreeCopier]

     Definition Classes
       ImplicitTags

141. #### implicit abstract val TreeTag: ClassTag[Tree]

     Definition Classes
       ImplicitTags

142. #### abstract val Try: TryExtractor

     The constructor/extractor for `Try` instances.

     The constructor/extractor for `Try` instances.

     Definition Classes
       Trees

143. #### implicit abstract val TryTag: ClassTag[Try]

     Definition Classes
       ImplicitTags

144. #### implicit abstract val TypTreeTag: ClassTag[TypTree]

     Definition Classes
       ImplicitTags

145. #### abstract val TypeApply: TypeApplyExtractor

     The constructor/extractor for `TypeApply` instances.

     The constructor/extractor for `TypeApply` instances.

     Definition Classes
       Trees

146. #### implicit abstract val TypeApplyTag: ClassTag[TypeApply]

     Definition Classes
       ImplicitTags

147. #### abstract val TypeBounds: TypeBoundsExtractor

     The constructor/extractor for `TypeBounds` instances.

     The constructor/extractor for `TypeBounds` instances.

     Definition Classes
       Types

148. #### implicit abstract val TypeBoundsTag: ClassTag[TypeBounds]

     Definition Classes
       ImplicitTags

149. #### abstract val TypeBoundsTree: TypeBoundsTreeExtractor

     The constructor/extractor for `TypeBoundsTree` instances.

     The constructor/extractor for `TypeBoundsTree` instances.

     Definition Classes
       Trees

150. #### implicit abstract val TypeBoundsTreeTag: ClassTag[TypeBoundsTree]

     Definition Classes
       ImplicitTags

151. #### abstract val TypeDef: TypeDefExtractor

     The constructor/extractor for `TypeDef` instances.

     The constructor/extractor for `TypeDef` instances.

     Definition Classes
       Trees

152. #### implicit abstract val TypeDefTag: ClassTag[TypeDef]

     Definition Classes
       ImplicitTags

153. #### abstract val TypeName: TypeNameExtractor

     The constructor/extractor for `TypeName` instances.

     The constructor/extractor for `TypeName` instances.

     Definition Classes
       Names

154. #### implicit abstract val TypeNameTag: ClassTag[TypeName]

     Definition Classes
       ImplicitTags

155. #### abstract val TypeRef: TypeRefExtractor

     The constructor/extractor for `TypeRef` instances.

     The constructor/extractor for `TypeRef` instances.

     Definition Classes
       Types

156. #### implicit abstract val TypeRefTag: ClassTag[TypeRef]

     Definition Classes
       ImplicitTags

157. #### implicit abstract val TypeSymbolTag: ClassTag[TypeSymbol]

     Definition Classes
       ImplicitTags

158. #### implicit abstract val TypeTagg: ClassTag[Type]

     Definition Classes
       ImplicitTags

159. #### abstract def TypeTree(tp: Type): TypeTree

     A factory method for `TypeTree` nodes.

     A factory method for `TypeTree` nodes.

     Definition Classes
       Trees

160. #### abstract val TypeTree: TypeTreeExtractor

     The constructor/extractor for `TypeTree` instances.

     The constructor/extractor for `TypeTree` instances.

     Definition Classes
       Trees

161. #### implicit abstract val TypeTreeTag: ClassTag[TypeTree]

     Definition Classes
       ImplicitTags

162. #### abstract val Typed: TypedExtractor

     The constructor/extractor for `Typed` instances.

     The constructor/extractor for `Typed` instances.

     Definition Classes
       Trees

163. #### implicit abstract val TypedTag: ClassTag[Typed]

     Definition Classes
       ImplicitTags

164. #### abstract val UnApply: UnApplyExtractor

     The constructor/extractor for `UnApply` instances.

     The constructor/extractor for `UnApply` instances.

     Definition Classes
       Trees

165. #### implicit abstract val UnApplyTag: ClassTag[UnApply]

     Definition Classes
       ImplicitTags

166. #### abstract val ValDef: ValDefExtractor

     The constructor/extractor for `ValDef` instances.

     The constructor/extractor for `ValDef` instances.

     Definition Classes
       Trees

167. #### implicit abstract val ValDefTag: ClassTag[ValDef]

     Definition Classes
       ImplicitTags

168. #### implicit abstract val ValOrDefDefTag: ClassTag[ValOrDefDef]

     Definition Classes
       ImplicitTags

169. #### abstract val WildcardType: Type

     An object representing an unknown type, used during type inference.

     An object representing an unknown type, used during type inference. If you see WildcardType outside of inference it is almost certainly a bug.

     Definition Classes
       Types

170. #### implicit abstract def addFlagOps(left: FlagSet): FlagOps

     The API of `FlagSet` instances.

     The API of `FlagSet` instances.

     Definition Classes
       FlagSets

171. #### abstract def annotationToTree(ann: Annotation): Tree

     Attributes
       protected[scala]
     Definition Classes
       Annotations

172. #### abstract def appliedType(sym: Symbol, args: Type*): Type

     Definition Classes
       Types
     See also

       appliedType

173. #### abstract def appliedType(sym: Symbol, args: List[Type]): Type

     Definition Classes
       Types
     See also

       appliedType

174. #### abstract def appliedType(tycon: Type, args: Type*): Type

     Definition Classes
       Types
     See also

       appliedType

175. #### abstract def appliedType(tycon: Type, args: List[Type]): Type

     A creator for type applications

     A creator for type applications

     Definition Classes
       Types

176. #### abstract def atPos[T <: Tree](pos: Position)(tree: T): T

     Assigns a given position to all position-less nodes of a given AST.

     Assigns a given position to all position-less nodes of a given AST.

     Definition Classes
       Positions

177. #### abstract val compat: Compat

     Provides enrichments to ensure source compatibility between Scala 2.

     Provides enrichments to ensure source compatibility between Scala 2.10 and Scala 2.11. If in your reflective program for Scala 2.10 you've used something that's now become an internal API, a single `compat._` import will fix things for you.

     Definition Classes
       Internals

178. #### abstract val definitions: DefinitionsApi

     A value containing all standard definitions in DefinitionsApi

     A value containing all standard definitions in DefinitionsApi

     Definition Classes
       StandardDefinitions

179. #### abstract def glb(ts: List[Type]): Type

     The greatest lower bound of a list of types, as determined by `<:<`.

     The greatest lower bound of a list of types, as determined by `<:<`.

     Definition Classes
       Types

180. #### abstract val internal: Internal

     Definition Classes
       Internals
     See also

       InternalApi

181. #### abstract def lub(xs: List[Type]): Type

     The least upper bound of a list of types, as determined by `<:<`.

     The least upper bound of a list of types, as determined by `<:<`.

     Definition Classes
       Types

182. #### abstract def newCodePrinter(out: PrintWriter, tree: Tree, printRootPkg: Boolean): TreePrinter

     Hook to define what `showCode(...)` means.

     Hook to define what `showCode(...)` means.

     Attributes
       protected
     Definition Classes
       Printers

183. #### abstract def newLazyTreeCopier: TreeCopier

     Creates a lazy tree copier.

     Creates a lazy tree copier.

     Definition Classes
       Trees

184. #### abstract def newRawTreePrinter(out: PrintWriter): TreePrinter

     Hook to define what `showRaw(...)` means.

     Hook to define what `showRaw(...)` means.

     Attributes
       protected
     Definition Classes
       Printers

185. #### abstract def newStrictTreeCopier: TreeCopier

     Creates a strict tree copier.

     Creates a strict tree copier.

     Definition Classes
       Trees

186. #### abstract def newTreePrinter(out: PrintWriter): TreePrinter

     Hook to define what `show(...)` means.

     Hook to define what `show(...)` means.

     Attributes
       protected
     Definition Classes
       Printers

187. #### abstract val noSelfType: ValDef

     An empty deferred value definition corresponding to: val _: _ This is used as a placeholder in the `self` parameter Template if there is no definition of a self value of self type.

     An empty deferred value definition corresponding to: val _: _ This is used as a placeholder in the `self` parameter Template if there is no definition of a self value of self type.

     Definition Classes
       Trees

188. #### abstract val pendingSuperCall: Apply

     An empty superclass constructor call corresponding to: super.

     An empty superclass constructor call corresponding to: super.<init>() This is used as a placeholder in the primary constructor body in class templates to denote the insertion point of a call to superclass constructor after the typechecker figures out the superclass of a given template.

     Definition Classes
       Trees

189. #### abstract val rootMirror: Mirror

     The root mirror of this universe.

     The root mirror of this universe. This mirror contains standard Scala classes and types such as `Any`, `AnyRef`, `AnyVal`, `Nothing`, `Null`, and all classes loaded from scala-library, which are shared across all mirrors within the enclosing universe.

     Definition Classes
       Mirrors

190. #### abstract def show(position: Position): String

     Renders a prettified representation of a position.

     Renders a prettified representation of a position.

     Definition Classes
       Printers

191. #### abstract def show(flags: FlagSet): String

     Renders a prettified representation of a flag set.

     Renders a prettified representation of a flag set.

     Definition Classes
       Printers

192. #### abstract def show(name: Name): String

     Renders a prettified representation of a name.

     Renders a prettified representation of a name.

     Definition Classes
       Printers

193. #### abstract def showDecl(sym: Symbol): String

     Renders a string that represents a declaration of this symbol written in Scala.

     Renders a string that represents a declaration of this symbol written in Scala.

     Definition Classes
       Printers

194. #### abstract def symbolOf[T](implicit arg0: WeakTypeTag[T]): TypeSymbol

     Type symbol of `x` as derived from a type tag.

     Type symbol of `x` as derived from a type tag.

     Definition Classes
       TypeTags

195. #### abstract val termNames: TermNamesApi

     A value containing all standard term names.

     A value containing all standard term names.

     Definition Classes
       StandardNames

196. #### abstract def treeToAnnotation(tree: Tree): Annotation

     Attributes
       protected[scala]
     Definition Classes
       Annotations

197. #### abstract val typeNames: TypeNamesApi

     A value containing all standard type names.

     A value containing all standard type names.

     Definition Classes
       StandardNames

198. #### abstract def wrappingPos(trees: List[Tree]): Position

     A position that wraps the non-empty set of trees.

     A position that wraps the non-empty set of trees. The point of the wrapping position is the point of the first trees' position. If all some the trees are non-synthetic, returns a range position enclosing the non-synthetic trees Otherwise returns a synthetic offset position to point.

     Definition Classes
       Positions

199. #### abstract def wrappingPos(default: Position, trees: List[Tree]): Position

     A position that wraps a set of trees.

     A position that wraps a set of trees. The point of the wrapping position is the point of the default position. If some of the trees are ranges, returns a range position enclosing all ranges Otherwise returns default position.

     Definition Classes
       Positions

200. #### abstract def Apply(sym: Symbol, args: Tree*): Tree

     A factory method for `Apply` nodes.

     A factory method for `Apply` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"$sym(..$args)" instead

201. #### abstract def ApplyConstructor(tpt: Tree, args: List[Tree]): Tree

     0-1 argument list new, based on a type tree.

     0-1 argument list new, based on a type tree.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"new $tpt(..$args)" instead

202. #### abstract val ArrayArgument: ArrayArgumentExtractor

     The constructor/extractor for `ArrayArgument` instances.

     The constructor/extractor for `ArrayArgument` instances.

     Definition Classes
       Annotations
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `Annotation.tree` to inspect annotation arguments

203. #### abstract def Bind(sym: Symbol, body: Tree): Bind

     A factory method for `Bind` nodes.

     A factory method for `Bind` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical Bind constructor to create a bind and then initialize its symbol manually

204. #### abstract def Block(stats: Tree*): Block

     A factory method for `Block` nodes.

     A factory method for `Block` nodes. Flattens directly nested blocks.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"{..$stats}" instead. Flatten directly nested blocks manually if needed

205. #### abstract def CaseDef(pat: Tree, body: Tree): CaseDef

     A factory method for `CaseDef` nodes.

     A factory method for `CaseDef` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use cq"$pat => $body" instead

206. #### abstract def Ident(name: String): Ident

     A factory method for `Ident` nodes.

     A factory method for `Ident` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Ident(TermName(name)) instead

207. #### abstract val LiteralArgument: LiteralArgumentExtractor

     The constructor/extractor for `LiteralArgument` instances.

     The constructor/extractor for `LiteralArgument` instances.

     Definition Classes
       Annotations
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `Annotation.tree` to inspect annotation arguments

208. #### abstract val NestedArgument: NestedArgumentExtractor

     The constructor/extractor for `NestedArgument` instances.

     The constructor/extractor for `NestedArgument` instances.

     Definition Classes
       Annotations
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `Annotation.tree` to inspect annotation arguments

209. #### abstract def New(sym: Symbol, args: Tree*): Tree

     0-1 argument list new, based on a symbol.

     0-1 argument list new, based on a symbol.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"new ${sym.toType}(..$args)" instead

210. #### abstract def New(tpe: Type, args: Tree*): Tree

     0-1 argument list new, based on a type.

     0-1 argument list new, based on a type.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"new $tpe(..$args)" instead

211. #### abstract def New(tpt: Tree, argss: List[List[Tree]]): Tree

     Factory method for object creation `new tpt(args_1)...(args_n)` A `New(t, as)` is expanded to: `(new t).<init>(as)`

     Factory method for object creation `new tpt(args_1)...(args_n)` A `New(t, as)` is expanded to: `(new t).<init>(as)`

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"new $tpt(...$argss)" instead

212. #### abstract def Select(qualifier: Tree, name: String): Select

     A factory method for `Select` nodes.

     A factory method for `Select` nodes. The string `name` argument is assumed to represent a `TermName`.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Select(tree, TermName(name)) instead

213. #### abstract def Super(sym: Symbol, mix: TypeName): Tree

     A factory method for `Super` nodes.

     A factory method for `Super` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"$sym.super[$mix].x".qualifier instead

214. #### abstract def Throw(tpe: Type, args: Tree*): Throw

     A factory method for `Throw` nodes.

     A factory method for `Throw` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use q"throw new $tpe(..$args)" instead

215. #### abstract def Try(body: Tree, cases: (Tree, Tree)*): Try

     A factory method for `Try` nodes.

     A factory method for `Try` nodes.

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Convert cases into casedefs and use q"try $body catch { case ..$newcases }" instead

216. #### abstract val build: ReificationSupportApi

     Definition Classes
       Internals
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `internal.reificationSupport` instead

217. #### abstract val emptyValDef: ValDef

     Definition Classes
       Trees
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `noSelfType` instead

218. #### abstract def newTermName(s: String): TermName

     Create a new term name.

     Create a new term name.

     Definition Classes
       Names
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use TermName instead

219. #### abstract def newTypeName(s: String): TypeName

     Creates a new type name.

     Creates a new type name.

     Definition Classes
       Names
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use TypeName instead

220. #### abstract val nme: TermNamesApi

     Definition Classes
       StandardNames
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `termNames` instead

     See also

       termNames

221. #### abstract val tpnme: TypeNamesApi

     Definition Classes
       StandardNames
     Annotations
       @deprecated
     Deprecated

       (Since version 2.11.0) Use `typeNames` instead

     See also

       typeNames

### 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 information
     This member is added by an implicit conversion from Universe to any2stringadd[Universe] performed by method any2stringadd in scala.Predef.
   Definition Classes
     any2stringadd

4. #### def ->[B](y: B): (Universe, B)

   Implicit information
     This member is added by an implicit conversion from Universe to ArrowAssoc[Universe] performed by method ArrowAssoc in scala.Predef.
   Definition Classes
     ArrowAssoc
   Annotations
     @inline()

5. #### final def ==(arg0: Any): Boolean

   Definition Classes
     AnyRef → Any

6. #### object BooleanFlag extends Serializable

7. #### object Expr extends Serializable

   Constructor/Extractor for Expr.

8. #### object Liftable extends Universe.StandardLiftableInstances

   Companion to `Liftable` type class that contains standard instances and provides a helper `apply` method to simplify creation of new ones.

9. #### def Modifiers(flags: FlagSet): Modifiers

   The factory for `Modifiers` instances.

   The factory for `Modifiers` instances.

   Definition Classes
     Trees

10. #### def Modifiers(flags: FlagSet, privateWithin: Name): Modifiers

    The factory for `Modifiers` instances.

    The factory for `Modifiers` instances.

    Definition Classes
      Trees

11. #### lazy val NoMods: Modifiers

    An empty `Modifiers` object: no flags, empty visibility annotation and no Scala annotations.

    An empty `Modifiers` object: no flags, empty visibility annotation and no Scala annotations.

    Definition Classes
      Trees

12. #### object TypeTag extends Serializable

    Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.

13. #### object Unliftable extends Universe.StandardUnliftableInstances

    Companion to `Unliftable` type class that contains standard instances and provides a helper `apply` method to simplify creation of new ones.

14. #### object WeakTypeTag extends Serializable

    Type tags corresponding to primitive types and constructor/extractor for WeakTypeTags.

15. #### final def asInstanceOf[T0]: T0

    Definition Classes
      Any

16. #### def clone(): AnyRef

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

17. #### def ensuring(cond: (Universe) ⇒ Boolean, msg: ⇒ Any): Universe

    Implicit information
      This member is added by an implicit conversion from Universe to Ensuring[Universe] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

18. #### def ensuring(cond: (Universe) ⇒ Boolean): Universe

    Implicit information
      This member is added by an implicit conversion from Universe to Ensuring[Universe] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

19. #### def ensuring(cond: Boolean, msg: ⇒ Any): Universe

    Implicit information
      This member is added by an implicit conversion from Universe to Ensuring[Universe] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

20. #### def ensuring(cond: Boolean): Universe

    Implicit information
      This member is added by an implicit conversion from Universe to Ensuring[Universe] performed by method Ensuring in scala.Predef.
    Definition Classes
      Ensuring

21. #### final def eq(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

22. #### def equals(arg0: Any): Boolean

    Definition Classes
      AnyRef → Any

23. #### def finalize(): Unit

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

24. #### def formatted(fmtstr: String): String

    Implicit information
      This member is added by an implicit conversion from Universe to StringFormat[Universe] performed by method StringFormat in scala.Predef.
    Definition Classes
      StringFormat
    Annotations
      @inline()

25. #### final def getClass(): Class[_]

    Definition Classes
      AnyRef → Any

26. #### def hashCode(): Int

    Definition Classes
      AnyRef → Any

27. #### final def isInstanceOf[T0]: Boolean

    Definition Classes
      Any

28. #### def itransform(transformer: Transformer, tree: Tree): Tree

    Delegates the transformation strategy to `scala.reflect.internal.Trees`, because pattern matching on abstract types we have here degrades performance.

    Delegates the transformation strategy to `scala.reflect.internal.Trees`, because pattern matching on abstract types we have here degrades performance.

    Attributes
      protected
    Definition Classes
      Trees

29. #### def itraverse(traverser: Traverser, tree: Tree): Unit

    Delegates the traversal strategy to `scala.reflect.internal.Trees`, because pattern matching on abstract types we have here degrades performance.

    Delegates the traversal strategy to `scala.reflect.internal.Trees`, because pattern matching on abstract types we have here degrades performance.

    Attributes
      protected
    Definition Classes
      Trees

30. #### final def ne(arg0: AnyRef): Boolean

    Definition Classes
      AnyRef

31. #### final def notify(): Unit

    Definition Classes
      AnyRef

32. #### final def notifyAll(): Unit

    Definition Classes
      AnyRef

33. #### macro def reify[T](expr: T): Expr[T]

    Use `reify` to produce the abstract syntax tree representing a given Scala expression.

    Use `reify` to produce the abstract syntax tree representing a given Scala expression.

    For example:

        val five = reify{ 5 }         // Literal(Constant(5))
        reify{ 5.toString }           // Apply(Select(Literal(Constant(5)), TermName("toString")), List())
        reify{ five.splice.toString } // Apply(Select(five, TermName("toString")), List())

    The produced tree is path dependent on the Universe `reify` was called from.

    Use scala.reflect.api.Exprs#Expr.splice to embed an existing expression into a `reify` call. Use Expr to turn a Tree into an expression that can be spliced.

34. #### def render(what: Any, mkPrinter: (PrintWriter) ⇒ TreePrinter, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String

    Attributes
      protected
    Definition Classes
      Printers

35. #### def show(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String

    Renders a representation of a reflection artifact as desugared Scala code.

    Renders a representation of a reflection artifact as desugared Scala code.

    Definition Classes
      Printers

36. #### def showCode(tree: Tree, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printPositions: BooleanFlag = None, printRootPkg: Boolean = false): String

    Renders the code of the passed tree, so that: 1) it can be later compiled by scalac retaining the same meaning, 2) it looks pretty.

    Renders the code of the passed tree, so that: 1) it can be later compiled by scalac retaining the same meaning, 2) it looks pretty. #1 is available for unattributed trees and attributed trees #2 is more or less okay indentation-wise, but at the moment there's a lot of desugaring left in place, and that's what we plan to improve in the future. printTypes, printIds, printPositions options have the same meaning as for TreePrinter printRootPkg option is available only for attributed trees.

    Definition Classes
      Printers

37. #### def showRaw(position: Position): String

    Renders internal structure of a position.

    Renders internal structure of a position.

    Definition Classes
      Printers

38. #### def showRaw(flags: FlagSet): String

    Renders internal structure of a flag set.

    Renders internal structure of a flag set.

    Definition Classes
      Printers

39. #### def showRaw(name: Name): String

    Renders internal structure of a name.

    Renders internal structure of a name.

    Definition Classes
      Printers

40. #### def showRaw(any: Any, printTypes: BooleanFlag = None, printIds: BooleanFlag = None, printOwners: BooleanFlag = None, printKinds: BooleanFlag = None, printMirrors: BooleanFlag = None, printPositions: BooleanFlag = None): String

    Renders internal structure of a reflection artifact as the visualization of a Scala syntax tree.

    Renders internal structure of a reflection artifact as the visualization of a Scala syntax tree.

    Definition Classes
      Printers

41. #### final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
      AnyRef

42. #### def toString(): String

    Definition Classes
      AnyRef → Any

43. #### val treeCopy: TreeCopier

    The standard (lazy) tree copier.

    The standard (lazy) tree copier.

    Definition Classes
      Trees

44. #### def treeToString(tree: Tree): String

    By default trees are printed with `show`

    By default trees are printed with `show`

    Attributes
      protected
    Definition Classes
      Printers

45. #### def typeOf[T](implicit ttag: TypeTag[T]): Type

    Shortcut for `implicitly[TypeTag[T]].tpe`

    Shortcut for `implicitly[TypeTag[T]].tpe`

    Definition Classes
      TypeTags

46. #### def typeTag[T](implicit ttag: TypeTag[T]): TypeTag[T]

    Shortcut for `implicitly[TypeTag[T]]`

    Shortcut for `implicitly[TypeTag[T]]`

    Definition Classes
      TypeTags

47. #### final def wait(): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

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

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

49. #### final def wait(arg0: Long): Unit

    Definition Classes
      AnyRef
    Annotations
      @throws( ... )

50. #### def weakTypeOf[T](implicit attag: WeakTypeTag[T]): Type

    Shortcut for `implicitly[WeakTypeTag[T]].tpe`

    Shortcut for `implicitly[WeakTypeTag[T]].tpe`

    Definition Classes
      TypeTags

51. #### def weakTypeTag[T](implicit attag: WeakTypeTag[T]): WeakTypeTag[T]

    Shortcut for `implicitly[WeakTypeTag[T]]`

    Shortcut for `implicitly[WeakTypeTag[T]]`

    Definition Classes
      TypeTags

52. #### def xtransform(transformer: Transformer, tree: Tree): Tree

    Provides an extension hook for the transformation strategy.

    Provides an extension hook for the transformation strategy. Future-proofs against new node types.

    Attributes
      protected
    Definition Classes
      Trees

53. #### def xtraverse(traverser: Traverser, tree: Tree): Unit

    Provides an extension hook for the traversal strategy.

    Provides an extension hook for the traversal strategy. Future-proofs against new node types.

    Attributes
      protected
    Definition Classes
      Trees

54. #### def →[B](y: B): (Universe, B)

    Implicit information
      This member is added by an implicit conversion from Universe to ArrowAssoc[Universe] performed by method ArrowAssoc in scala.Predef.
    Definition Classes
      ArrowAssoc

### Deprecated Value Members

1. #### def mkImporter(from0: Universe): Importer { val from: from0.type }

   Definition Classes
     Internals
   Annotations
     @deprecated
   Deprecated

     (Since version 2.11.0) Use `internal.createImporter` instead

2. #### implicit def stringToTermName(s: String): TermName

   An implicit conversion from String to TermName.

   An implicit conversion from String to TermName. Enables an alternative notation `"map": TermName` as opposed to `newTermName("map")`.

   Definition Classes
     Names
   Annotations
     @deprecated
   Deprecated

     (Since version 2.11.0) Use explicit `TermName(s)` instead

3. #### implicit def stringToTypeName(s: String): TypeName

   An implicit conversion from String to TypeName.

   An implicit conversion from String to TypeName. Enables an alternative notation `"List": TypeName` as opposed to `newTypeName("List")`.

   Definition Classes
     Names
   Annotations
     @deprecated
   Deprecated

     (Since version 2.11.0) Use explicit `TypeName(s)` instead

### Inherited from Internals

### Inherited from Quasiquotes

### Inherited from Liftables

### Inherited from Printers

### Inherited from Mirrors

### Inherited from StandardLiftables

### Inherited from StandardNames

### Inherited from StandardDefinitions

### Inherited from ImplicitTags

### Inherited from TypeTags

### Inherited from Exprs

### Inherited from Positions

### Inherited from Annotations

### Inherited from Constants

### Inherited from Trees

### Inherited from Names

### Inherited from Scopes

### Inherited from FlagSets

### Inherited from Types

### Inherited from Symbols

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from Universe to any2stringadd[Universe]

### Inherited by implicit conversion StringFormat from Universe to StringFormat[Universe]

### Inherited by implicit conversion Ensuring from Universe to Ensuring[Universe]

### Inherited by implicit conversion ArrowAssoc from Universe to ArrowAssoc[Universe]

### Universe

### Annotations

### Constants

### Definitions

### Expressions

### Flags

### Internal

### Mirrors

### Names

### Positions

### Printers

### Scopes

### Standard Names

### Symbols

### Trees

### Types - Operations

### TypeTags

### Types

### Tree Copying

### Factories

### Tree Traversal and Transformation

### API

The methods available for each reflection entity, without the implementation. Since the reflection entities are later overridden by runtime reflection and macros, their API counterparts guarantee a minimum set of methods that are implemented.

### Extractors

Extractors provide the machinery necessary to allow pattern matching and construction of reflection entities that is similar to case classes, although the entities are only abstract types that are later overridden.

### Ungrouped