scala.reflect.api

# Trees

#### trait Trees extends AnyRef

EXPERIMENTAL

This trait defines the node types used in Scala abstract syntax trees (AST) and operations on them.

Trees are the basis for Scala's abstract syntax that is used to represent programs. They are also called abstract syntax trees and commonly abbreviated as ASTs.

In Scala reflection, APIs that produce or use `Tree`s are:

- Annotations which use trees to represent their arguments, exposed in Annotation.scalaArgs.
- reify, a special method on scala.reflect.api.Universe that takes an expression and returns an AST which represents the expression.
- Macros and runtime compilation with toolboxes which both use trees as their program representation medium.

Trees are immutable, except for three fields pos, symbol, and tpe, which are assigned when a tree is typechecked to attribute it with the information gathered by the typechecker.

##### Examples

The following creates an AST representing a literal 5 in Scala source code:

    Literal(Constant(5))

The following creates an AST representing `print("Hello World")`:

    Apply(Select(Select(This(newTypeName("scala")), newTermName("Predef")), newTermName("print")), List(Literal(Constant("Hello World"))))

The following creates an AST from a literal 5, and then uses `showRaw` to print it in a readable format.

    import scala.reflect.runtime.universe.{ reify, showRaw }
    print( showRaw( reify{5}.tree ) )` // prints Literal(Constant(5))

For more information about `Tree`s, see the Reflection Guide: Symbols, Trees, Types.

Self Type
  Universe
Source
  Trees.scala

Linear Supertypes
AnyRef, Any
Known Subclasses
JavaUniverse, JavaUniverse, Universe, Universe
Ordering

1. Grouped
2. Alphabetic
3. By inheritance

Inherited

1. Trees
2. AnyRef
3. Any

Implicitly

1. by any2stringadd
2. by any2stringfmt
3. by any2ArrowAssoc
4. by any2Ensuring

1. Hide All
2. Show all

Learn more about member selection
Visibility

1. Public
2. All

### Type Members

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

   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.Tree with Universe.AnnotatedApi

   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 AppliedTypeTree >: Null <: Universe.TypTree with Universe.AppliedTypeTreeApi

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

8. #### trait AppliedTypeTreeApi extends Universe.TypTreeApi

   The API that all applied type trees support

9. #### abstract class AppliedTypeTreeExtractor extends AnyRef

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

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

    Value application

11. #### trait ApplyApi extends Universe.GenericApplyApi

    The API that all applies support

12. #### abstract class ApplyExtractor extends AnyRef

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

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

    Assignment

14. #### trait AssignApi extends Universe.TermTreeApi

    The API that all assigns support

15. #### abstract class AssignExtractor extends AnyRef

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

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

    Either an assignment or a named argument.

17. #### trait AssignOrNamedArgApi extends Universe.TermTreeApi

    The API that all assigns support

18. #### abstract class AssignOrNamedArgExtractor extends AnyRef

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

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

    Bind a variable to a rhs pattern.

20. #### trait BindApi extends Universe.DefTreeApi

    The API that all binds support

21. #### abstract class BindExtractor extends AnyRef

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

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

    Block of expressions (semicolon separated expressions)

23. #### trait BlockApi extends Universe.TermTreeApi

    The API that all blocks support

24. #### abstract class BlockExtractor extends AnyRef

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

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

    Case clause in a pattern match.

26. #### trait CaseDefApi extends Universe.TreeApi

    The API that all case defs support

27. #### abstract class CaseDefExtractor extends AnyRef

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

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

    A class definition.

29. #### trait ClassDefApi extends Universe.ImplDefApi

    The API that all class defs support

30. #### abstract class ClassDefExtractor extends AnyRef

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

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

    Intersection type <parent1> with .

32. #### trait CompoundTypeTreeApi extends Universe.TypTreeApi

    The API that all compound type trees support

33. #### abstract class CompoundTypeTreeExtractor extends AnyRef

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

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

    A method or macro definition.

35. #### trait DefDefApi extends Universe.ValOrDefDefApi

    The API that all def defs support

36. #### abstract class DefDefExtractor extends AnyRef

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

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

    A tree which defines a symbol-carrying entity.

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

    The API that all def trees support

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

    Existential type tree node

40. #### trait ExistentialTypeTreeApi extends Universe.TypTreeApi

    The API that all existential type trees support

41. #### abstract class ExistentialTypeTreeExtractor extends AnyRef

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

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

    Anonymous function, eliminated by compiler phase lambdalift

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

    The API that all functions support

44. #### abstract class FunctionExtractor extends AnyRef

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

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

    Common base class for Apply and TypeApply.

46. #### trait GenericApplyApi extends Universe.TermTreeApi

    The API that all applies support

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

    A reference to identifier `name`.

48. #### trait IdentApi extends Universe.RefTreeApi

    The API that all idents support

49. #### abstract class IdentExtractor extends AnyRef

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

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

    Conditional expression

51. #### trait IfApi extends Universe.TermTreeApi

    The API that all ifs support

52. #### abstract class IfExtractor extends AnyRef

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

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

    A common base class for class and object definitions.

54. #### trait ImplDefApi extends Universe.MemberDefApi

    The API that all impl defs support

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

    Import clause

56. #### trait ImportApi extends Universe.SymTreeApi

    The API that all imports support

57. #### abstract class ImportExtractor extends AnyRef

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

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

    Import selector

59. #### trait ImportSelectorApi extends AnyRef

    The API that all import selectors support

60. #### abstract class ImportSelectorExtractor extends AnyRef

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

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

    A labelled expression.

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

    The API that all label defs support

63. #### abstract class LabelDefExtractor extends AnyRef

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

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

    Literal

65. #### trait LiteralApi extends Universe.TermTreeApi

    The API that all literals support

66. #### abstract class LiteralExtractor extends AnyRef

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

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

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

68. #### trait MatchApi extends Universe.TermTreeApi

    The API that all matches support

69. #### abstract class MatchExtractor extends AnyRef

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

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

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

71. #### trait MemberDefApi extends Universe.DefTreeApi

    The API that all member defs support

72. #### abstract type Modifiers >: Null <: Universe.ModifiersApi

    The type of tree modifiers.

73. #### abstract class ModifiersApi extends AnyRef

    The API that all Modifiers support

74. #### abstract class ModifiersCreator extends AnyRef

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

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

    An object definition, e.

76. #### trait ModuleDefApi extends Universe.ImplDefApi

    The API that all module defs support

77. #### abstract class ModuleDefExtractor extends AnyRef

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

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

    A tree with a name - effectively, a DefTree or RefTree.

79. #### trait NameTreeApi extends Universe.TreeApi

    The API that all name trees support

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

    Object instantiation

81. #### trait NewApi extends Universe.TermTreeApi

    The API that all news support

82. #### abstract class NewExtractor extends AnyRef

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

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

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

84. #### trait PackageDefApi extends Universe.MemberDefApi

    The API that all package defs support

85. #### abstract class PackageDefExtractor extends AnyRef

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

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

    A tree which references a symbol-carrying entity.

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

    The API that all ref trees support

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

    Marks underlying reference to id as boxed.

89. #### trait ReferenceToBoxedApi extends Universe.TermTreeApi

    The API that all references support

90. #### abstract class ReferenceToBoxedExtractor extends AnyRef

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

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

    Return expression

92. #### trait ReturnApi extends Universe.TermTreeApi

    The API that all returns support

93. #### abstract class ReturnExtractor extends AnyRef

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

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

    A member selection <qualifier> .

95. #### trait SelectApi extends Universe.RefTreeApi

    The API that all selects support

96. #### abstract class SelectExtractor extends AnyRef

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

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

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

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

    The API that all selects from type trees support

99. #### abstract class SelectFromTypeTreeExtractor extends AnyRef

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

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

     Singleton type, eliminated by RefCheck

101. #### trait SingletonTypeTreeApi extends Universe.TypTreeApi

     The API that all singleton type trees support

102. #### abstract class SingletonTypeTreeExtractor extends AnyRef

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

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

     Repetition of pattern.

104. #### trait StarApi extends Universe.TermTreeApi

     The API that all stars support

105. #### abstract class StarExtractor extends AnyRef

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

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

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

107. #### trait SuperApi extends Universe.TermTreeApi

     The API that all supers support

108. #### abstract class SuperExtractor extends AnyRef

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

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

     A tree with a mutable symbol field, initialized to NoSymbol.

110. #### trait SymTreeApi extends Universe.TreeApi

     The API that all sym trees support

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

     Instantiation template of a class or trait

112. #### trait TemplateApi extends Universe.SymTreeApi

     The API that all templates support

113. #### abstract class TemplateExtractor extends AnyRef

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

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

     A tree for a term.

115. #### trait TermTreeApi extends Universe.TreeApi

     The API that all term trees support

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

     Self reference

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

     The API that all thises support

118. #### abstract class ThisExtractor extends AnyRef

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

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

     Throw expression

120. #### trait ThrowApi extends Universe.TermTreeApi

     The API that all tries support

121. #### abstract class ThrowExtractor extends AnyRef

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

122. #### abstract class Transformer extends AnyRef

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

123. #### class Traverser extends AnyRef

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

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

     The type of Scala abstract syntax trees.

125. #### trait TreeApi extends Product

     The API that all trees support.

126. #### abstract type TreeCopier <: Universe.TreeCopierOps

     The type of standard (lazy) tree copiers.

127. #### abstract class TreeCopierOps extends AnyRef

     The API of a tree copier.

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

     Try catch node

129. #### trait TryApi extends Universe.TermTreeApi

     The API that all tries support

130. #### abstract class TryExtractor extends AnyRef

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

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

     A tree for a type.

132. #### trait TypTreeApi extends Universe.TreeApi

     The API that all typ trees support

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

     Explicit type application.

134. #### trait TypeApplyApi extends Universe.GenericApplyApi

     The API that all type applies support

135. #### abstract class TypeApplyExtractor extends AnyRef

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

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

     Type bounds tree node

137. #### trait TypeBoundsTreeApi extends Universe.TypTreeApi

     The API that all type bound trees support

138. #### abstract class TypeBoundsTreeExtractor extends AnyRef

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

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

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

140. #### trait TypeDefApi extends Universe.MemberDefApi

     The API that all type defs support

141. #### abstract class TypeDefExtractor extends AnyRef

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

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

     A synthetic tree holding an arbitrary type.

143. #### trait TypeTreeApi extends Universe.TypTreeApi

     The API that all type trees support

144. #### abstract class TypeTreeExtractor extends AnyRef

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

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

     Type annotation, eliminated by compiler phase cleanup

146. #### trait TypedApi extends Universe.TermTreeApi

     The API that all typeds support

147. #### abstract class TypedExtractor extends AnyRef

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

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

     Used to represent `unapply` methods in pattern matching.

149. #### trait UnApplyApi extends Universe.TermTreeApi

     The API that all unapplies support

150. #### abstract class UnApplyExtractor extends AnyRef

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

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

     Broadly speaking, a value definition.

152. #### trait ValDefApi extends Universe.ValOrDefDefApi

     The API that all val defs support

153. #### abstract class ValDefExtractor extends AnyRef

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

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

     A common base class for ValDefs and DefDefs.

155. #### trait ValOrDefDefApi extends Universe.MemberDefApi

     The API that all val defs and def defs support

### Abstract Value Members

1. #### abstract val Alternative: Universe.AlternativeExtractor

   The constructor/extractor for `Alternative` instances.

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

   A tag that preserves the identity of the `Alternative` abstract type from erasure.

   A tag that preserves the identity of the `Alternative` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

3. #### abstract val Annotated: Universe.AnnotatedExtractor

   The constructor/extractor for `Annotated` instances.

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

   A tag that preserves the identity of the `Annotated` abstract type from erasure.

   A tag that preserves the identity of the `Annotated` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

5. #### abstract val AppliedTypeTree: Universe.AppliedTypeTreeExtractor

   The constructor/extractor for `AppliedTypeTree` instances.

6. #### implicit abstract val AppliedTypeTreeTag: ClassTag[Universe.AppliedTypeTree]

   A tag that preserves the identity of the `AppliedTypeTree` abstract type from erasure.

   A tag that preserves the identity of the `AppliedTypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

7. #### abstract val Apply: Universe.ApplyExtractor

   The constructor/extractor for `Apply` instances.

8. #### implicit abstract val ApplyTag: ClassTag[Universe.Apply]

   A tag that preserves the identity of the `Apply` abstract type from erasure.

   A tag that preserves the identity of the `Apply` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

9. #### abstract val Assign: Universe.AssignExtractor

   The constructor/extractor for `Assign` instances.

10. #### abstract val AssignOrNamedArg: Universe.AssignOrNamedArgExtractor

    The constructor/extractor for `AssignOrNamedArg` instances.

11. #### implicit abstract val AssignOrNamedArgTag: ClassTag[Universe.AssignOrNamedArg]

    A tag that preserves the identity of the `AssignOrNamedArg` abstract type from erasure.

    A tag that preserves the identity of the `AssignOrNamedArg` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

12. #### implicit abstract val AssignTag: ClassTag[Universe.Assign]

    A tag that preserves the identity of the `Assign` abstract type from erasure.

    A tag that preserves the identity of the `Assign` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

13. #### abstract val Bind: Universe.BindExtractor

    The constructor/extractor for `Bind` instances.

14. #### implicit abstract val BindTag: ClassTag[Universe.Bind]

    A tag that preserves the identity of the `Bind` abstract type from erasure.

    A tag that preserves the identity of the `Bind` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

15. #### abstract val Block: Universe.BlockExtractor

    The constructor/extractor for `Block` instances.

16. #### implicit abstract val BlockTag: ClassTag[Universe.Block]

    A tag that preserves the identity of the `Block` abstract type from erasure.

    A tag that preserves the identity of the `Block` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

17. #### abstract val CaseDef: Universe.CaseDefExtractor

    The constructor/extractor for `CaseDef` instances.

18. #### implicit abstract val CaseDefTag: ClassTag[Universe.CaseDef]

    A tag that preserves the identity of the `CaseDef` abstract type from erasure.

    A tag that preserves the identity of the `CaseDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

19. #### abstract val ClassDef: Universe.ClassDefExtractor

    The constructor/extractor for `ClassDef` instances.

20. #### implicit abstract val ClassDefTag: ClassTag[Universe.ClassDef]

    A tag that preserves the identity of the `ClassDef` abstract type from erasure.

    A tag that preserves the identity of the `ClassDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

21. #### abstract val CompoundTypeTree: Universe.CompoundTypeTreeExtractor

    The constructor/extractor for `CompoundTypeTree` instances.

22. #### implicit abstract val CompoundTypeTreeTag: ClassTag[Universe.CompoundTypeTree]

    A tag that preserves the identity of the `CompoundTypeTree` abstract type from erasure.

    A tag that preserves the identity of the `CompoundTypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

23. #### abstract val DefDef: Universe.DefDefExtractor

    The constructor/extractor for `DefDef` instances.

24. #### implicit abstract val DefDefTag: ClassTag[Universe.DefDef]

    A tag that preserves the identity of the `DefDef` abstract type from erasure.

    A tag that preserves the identity of the `DefDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

25. #### implicit abstract val DefTreeTag: ClassTag[Universe.DefTree]

    A tag that preserves the identity of the `DefTree` abstract type from erasure.

    A tag that preserves the identity of the `DefTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

26. #### abstract val EmptyTree: Universe.Tree

    The empty tree

27. #### abstract val ExistentialTypeTree: Universe.ExistentialTypeTreeExtractor

    The constructor/extractor for `ExistentialTypeTree` instances.

28. #### implicit abstract val ExistentialTypeTreeTag: ClassTag[Universe.ExistentialTypeTree]

    A tag that preserves the identity of the `ExistentialTypeTree` abstract type from erasure.

    A tag that preserves the identity of the `ExistentialTypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

29. #### abstract val Function: Universe.FunctionExtractor

    The constructor/extractor for `Function` instances.

30. #### implicit abstract val FunctionTag: ClassTag[Universe.Function]

    A tag that preserves the identity of the `Function` abstract type from erasure.

    A tag that preserves the identity of the `Function` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

31. #### implicit abstract val GenericApplyTag: ClassTag[Universe.GenericApply]

    A tag that preserves the identity of the `GenericApply` abstract type from erasure.

    A tag that preserves the identity of the `GenericApply` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

32. #### abstract def Ident(sym: Universe.Symbol): Universe.Ident

    A factory method for `Ident` nodes.

33. #### abstract val Ident: Universe.IdentExtractor

    The constructor/extractor for `Ident` instances.

34. #### implicit abstract val IdentTag: ClassTag[Universe.Ident]

    A tag that preserves the identity of the `Ident` abstract type from erasure.

    A tag that preserves the identity of the `Ident` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

35. #### abstract val If: Universe.IfExtractor

    The constructor/extractor for `If` instances.

36. #### implicit abstract val IfTag: ClassTag[Universe.If]

    A tag that preserves the identity of the `If` abstract type from erasure.

    A tag that preserves the identity of the `If` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

37. #### implicit abstract val ImplDefTag: ClassTag[Universe.ImplDef]

    A tag that preserves the identity of the `ImplDef` abstract type from erasure.

    A tag that preserves the identity of the `ImplDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

38. #### abstract val Import: Universe.ImportExtractor

    The constructor/extractor for `Import` instances.

39. #### abstract val ImportSelector: Universe.ImportSelectorExtractor

    The constructor/extractor for `ImportSelector` instances.

40. #### implicit abstract val ImportSelectorTag: ClassTag[Universe.ImportSelector]

    A tag that preserves the identity of the `ImportSelector` abstract type from erasure.

    A tag that preserves the identity of the `ImportSelector` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

41. #### implicit abstract val ImportTag: ClassTag[Universe.Import]

    A tag that preserves the identity of the `Import` abstract type from erasure.

    A tag that preserves the identity of the `Import` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

42. #### abstract val LabelDef: Universe.LabelDefExtractor

    The constructor/extractor for `LabelDef` instances.

43. #### implicit abstract val LabelDefTag: ClassTag[Universe.LabelDef]

    A tag that preserves the identity of the `LabelDef` abstract type from erasure.

    A tag that preserves the identity of the `LabelDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

44. #### abstract val Literal: Universe.LiteralExtractor

    The constructor/extractor for `Literal` instances.

45. #### implicit abstract val LiteralTag: ClassTag[Universe.Literal]

    A tag that preserves the identity of the `Literal` abstract type from erasure.

    A tag that preserves the identity of the `Literal` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

46. #### abstract val Match: Universe.MatchExtractor

    The constructor/extractor for `Match` instances.

47. #### implicit abstract val MatchTag: ClassTag[Universe.Match]

    A tag that preserves the identity of the `Match` abstract type from erasure.

    A tag that preserves the identity of the `Match` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

48. #### implicit abstract val MemberDefTag: ClassTag[Universe.MemberDef]

    A tag that preserves the identity of the `MemberDef` abstract type from erasure.

    A tag that preserves the identity of the `MemberDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

49. #### abstract val Modifiers: Universe.ModifiersCreator

    The constructor/extractor for `Modifiers` instances.

50. #### implicit abstract val ModifiersTag: ClassTag[Universe.Modifiers]

    A tag that preserves the identity of the `Modifiers` abstract type from erasure.

    A tag that preserves the identity of the `Modifiers` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

51. #### abstract val ModuleDef: Universe.ModuleDefExtractor

    The constructor/extractor for `ModuleDef` instances.

52. #### implicit abstract val ModuleDefTag: ClassTag[Universe.ModuleDef]

    A tag that preserves the identity of the `ModuleDef` abstract type from erasure.

    A tag that preserves the identity of the `ModuleDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

53. #### implicit abstract val NameTreeTag: ClassTag[Universe.NameTree]

    A tag that preserves the identity of the `NameTree` abstract type from erasure.

    A tag that preserves the identity of the `NameTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

54. #### abstract val New: Universe.NewExtractor

    The constructor/extractor for `New` instances.

55. #### implicit abstract val NewTag: ClassTag[Universe.New]

    A tag that preserves the identity of the `New` abstract type from erasure.

    A tag that preserves the identity of the `New` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

56. #### abstract val PackageDef: Universe.PackageDefExtractor

    The constructor/extractor for `PackageDef` instances.

57. #### implicit abstract val PackageDefTag: ClassTag[Universe.PackageDef]

    A tag that preserves the identity of the `PackageDef` abstract type from erasure.

    A tag that preserves the identity of the `PackageDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

58. #### implicit abstract val RefTreeTag: ClassTag[Universe.RefTree]

    A tag that preserves the identity of the `RefTree` abstract type from erasure.

    A tag that preserves the identity of the `RefTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

59. #### abstract val ReferenceToBoxed: Universe.ReferenceToBoxedExtractor

    The constructor/extractor for `ReferenceToBoxed` instances.

60. #### implicit abstract val ReferenceToBoxedTag: ClassTag[Universe.ReferenceToBoxed]

    A tag that preserves the identity of the `ReferenceToBoxed` abstract type from erasure.

    A tag that preserves the identity of the `ReferenceToBoxed` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

61. #### abstract val Return: Universe.ReturnExtractor

    The constructor/extractor for `Return` instances.

62. #### implicit abstract val ReturnTag: ClassTag[Universe.Return]

    A tag that preserves the identity of the `Return` abstract type from erasure.

    A tag that preserves the identity of the `Return` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

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

    A factory method for `Select` nodes.

64. #### abstract val Select: Universe.SelectExtractor

    The constructor/extractor for `Select` instances.

65. #### abstract val SelectFromTypeTree: Universe.SelectFromTypeTreeExtractor

    The constructor/extractor for `SelectFromTypeTree` instances.

66. #### implicit abstract val SelectFromTypeTreeTag: ClassTag[Universe.SelectFromTypeTree]

    A tag that preserves the identity of the `SelectFromTypeTree` abstract type from erasure.

    A tag that preserves the identity of the `SelectFromTypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

67. #### implicit abstract val SelectTag: ClassTag[Universe.Select]

    A tag that preserves the identity of the `Select` abstract type from erasure.

    A tag that preserves the identity of the `Select` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

68. #### abstract val SingletonTypeTree: Universe.SingletonTypeTreeExtractor

    The constructor/extractor for `SingletonTypeTree` instances.

69. #### implicit abstract val SingletonTypeTreeTag: ClassTag[Universe.SingletonTypeTree]

    A tag that preserves the identity of the `SingletonTypeTree` abstract type from erasure.

    A tag that preserves the identity of the `SingletonTypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

70. #### abstract val Star: Universe.StarExtractor

    The constructor/extractor for `Star` instances.

71. #### implicit abstract val StarTag: ClassTag[Universe.Star]

    A tag that preserves the identity of the `Star` abstract type from erasure.

    A tag that preserves the identity of the `Star` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

72. #### abstract val Super: Universe.SuperExtractor

    The constructor/extractor for `Super` instances.

73. #### implicit abstract val SuperTag: ClassTag[Universe.Super]

    A tag that preserves the identity of the `Super` abstract type from erasure.

    A tag that preserves the identity of the `Super` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

74. #### implicit abstract val SymTreeTag: ClassTag[Universe.SymTree]

    A tag that preserves the identity of the `SymTree` abstract type from erasure.

    A tag that preserves the identity of the `SymTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

75. #### abstract val Template: Universe.TemplateExtractor

    The constructor/extractor for `Template` instances.

76. #### implicit abstract val TemplateTag: ClassTag[Universe.Template]

    A tag that preserves the identity of the `Template` abstract type from erasure.

    A tag that preserves the identity of the `Template` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

77. #### implicit abstract val TermTreeTag: ClassTag[Universe.TermTree]

    A tag that preserves the identity of the `TermTree` abstract type from erasure.

    A tag that preserves the identity of the `TermTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

78. #### abstract def This(sym: Universe.Symbol): Universe.Tree

    A factory method for `This` nodes.

79. #### abstract val This: Universe.ThisExtractor

    The constructor/extractor for `This` instances.

80. #### implicit abstract val ThisTag: ClassTag[Universe.This]

    A tag that preserves the identity of the `This` abstract type from erasure.

    A tag that preserves the identity of the `This` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

81. #### abstract val Throw: Universe.ThrowExtractor

    The constructor/extractor for `Throw` instances.

82. #### implicit abstract val ThrowTag: ClassTag[Universe.Throw]

    A tag that preserves the identity of the `Throw` abstract type from erasure.

    A tag that preserves the identity of the `Throw` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

83. #### implicit abstract val TreeTag: ClassTag[Universe.Tree]

    A tag that preserves the identity of the `Tree` abstract type from erasure.

    A tag that preserves the identity of the `Tree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

84. #### abstract val Try: Universe.TryExtractor

    The constructor/extractor for `Try` instances.

85. #### implicit abstract val TryTag: ClassTag[Universe.Try]

    A tag that preserves the identity of the `Try` abstract type from erasure.

    A tag that preserves the identity of the `Try` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

86. #### implicit abstract val TypTreeTag: ClassTag[Universe.TypTree]

    A tag that preserves the identity of the `TypTree` abstract type from erasure.

    A tag that preserves the identity of the `TypTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

87. #### abstract val TypeApply: Universe.TypeApplyExtractor

    The constructor/extractor for `TypeApply` instances.

88. #### implicit abstract val TypeApplyTag: ClassTag[Universe.TypeApply]

    A tag that preserves the identity of the `TypeApply` abstract type from erasure.

    A tag that preserves the identity of the `TypeApply` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

89. #### abstract val TypeBoundsTree: Universe.TypeBoundsTreeExtractor

    The constructor/extractor for `TypeBoundsTree` instances.

90. #### implicit abstract val TypeBoundsTreeTag: ClassTag[Universe.TypeBoundsTree]

    A tag that preserves the identity of the `TypeBoundsTree` abstract type from erasure.

    A tag that preserves the identity of the `TypeBoundsTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

91. #### abstract val TypeDef: Universe.TypeDefExtractor

    The constructor/extractor for `TypeDef` instances.

92. #### implicit abstract val TypeDefTag: ClassTag[Universe.TypeDef]

    A tag that preserves the identity of the `TypeDef` abstract type from erasure.

    A tag that preserves the identity of the `TypeDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

93. #### abstract def TypeTree(tp: Universe.Type): Universe.TypeTree

    A factory method for `TypeTree` nodes.

94. #### abstract val TypeTree: Universe.TypeTreeExtractor

    The constructor/extractor for `TypeTree` instances.

95. #### implicit abstract val TypeTreeTag: ClassTag[Universe.TypeTree]

    A tag that preserves the identity of the `TypeTree` abstract type from erasure.

    A tag that preserves the identity of the `TypeTree` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

96. #### abstract val Typed: Universe.TypedExtractor

    The constructor/extractor for `Typed` instances.

97. #### implicit abstract val TypedTag: ClassTag[Universe.Typed]

    A tag that preserves the identity of the `Typed` abstract type from erasure.

    A tag that preserves the identity of the `Typed` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

98. #### abstract val UnApply: Universe.UnApplyExtractor

    The constructor/extractor for `UnApply` instances.

99. #### implicit abstract val UnApplyTag: ClassTag[Universe.UnApply]

    A tag that preserves the identity of the `UnApply` abstract type from erasure.

    A tag that preserves the identity of the `UnApply` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

100. #### abstract val ValDef: Universe.ValDefExtractor

     The constructor/extractor for `ValDef` instances.

101. #### implicit abstract val ValDefTag: ClassTag[Universe.ValDef]

     A tag that preserves the identity of the `ValDef` abstract type from erasure.

     A tag that preserves the identity of the `ValDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

102. #### implicit abstract val ValOrDefDefTag: ClassTag[Universe.ValOrDefDef]

     A tag that preserves the identity of the `ValOrDefDef` abstract type from erasure.

     A tag that preserves the identity of the `ValOrDefDef` abstract type from erasure. Can be used for pattern matching, instance tests, serialization and likes.

103. #### abstract val emptyValDef: Universe.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.

104. #### abstract def newLazyTreeCopier: Universe.TreeCopier

     Creates a lazy tree copier.

105. #### abstract def newStrictTreeCopier: Universe.TreeCopier

     Creates a strict tree copier.

106. #### abstract def treeToString(tree: Universe.Tree): String

     Obtains string representation of a tree

     Obtains string representation of a tree

     Attributes
       protected

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

     A factory method for `Apply` nodes.

     A factory method for `Apply` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Apply(Ident(sym), args.toList) instead

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

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

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

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Apply(Select(New(tpt), nme.CONSTRUCTOR), args) instead

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

     A factory method for `Bind` nodes.

     A factory method for `Bind` nodes.

     Annotations
       @deprecated
     Deprecated

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

110. #### abstract def Block(stats: Universe.Tree*): Universe.Block

     A factory method for `Block` nodes.

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

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical Block constructor, explicitly specifying its expression if necessary. Flatten directly nested blocks manually if needed

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

     A factory method for `CaseDef` nodes.

     A factory method for `CaseDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical CaseDef constructor passing EmptyTree for guard

112. #### abstract def ClassDef(sym: Universe.Symbol, impl: Universe.Template): Universe.ClassDef

     A factory method for `ClassDef` nodes.

     A factory method for `ClassDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical ClassDef constructor to create a class and then initialize its position and symbol manually

113. #### abstract def DefDef(sym: Universe.Symbol, rhs: (List[List[Universe.Symbol]]) ⇒ Universe.Tree): Universe.DefDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical DefDef constructor to create a method and then initialize its position and symbol manually

114. #### abstract def DefDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.DefDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical DefDef constructor to create a method and then initialize its position and symbol manually

115. #### abstract def DefDef(sym: Universe.Symbol, mods: Universe.Modifiers, rhs: Universe.Tree): Universe.DefDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical DefDef constructor to create a method and then initialize its position and symbol manually

116. #### abstract def DefDef(sym: Universe.Symbol, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical DefDef constructor to create a method and then initialize its position and symbol manually

117. #### abstract def DefDef(sym: Universe.Symbol, mods: Universe.Modifiers, vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree): Universe.DefDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical DefDef constructor to create a method and then initialize its position and symbol manually

118. #### abstract def Ident(name: String): Universe.Ident

     A factory method for `Ident` nodes.

     A factory method for `Ident` nodes.

     Annotations
       @deprecated
     Deprecated

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

119. #### abstract def LabelDef(sym: Universe.Symbol, params: List[Universe.Symbol], rhs: Universe.Tree): Universe.LabelDef

     A factory method for `LabelDef` nodes.

     A factory method for `LabelDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical LabelDef constructor to create a label and then initialize its position and symbol manually

120. #### abstract def ModuleDef(sym: Universe.Symbol, impl: Universe.Template): Universe.ModuleDef

     A factory method for `ModuleDef` nodes.

     A factory method for `ModuleDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical ModuleDef constructor to create an object and then initialize its position and symbol manually

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

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

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

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use New(sym.toType, args) instead

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

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

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

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use New(TypeTree(tpe), args.toList) instead

123. #### abstract def New(tpt: Universe.Tree, argss: List[List[Universe.Tree]]): Universe.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)`

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Apply(...Apply(Select(New(tpt), nme.CONSTRUCTOR), args1)...argsN) instead

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

     A factory method for `Select` nodes.

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

     Annotations
       @deprecated
     Deprecated

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

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

     A factory method for `Super` nodes.

     A factory method for `Super` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use Super(This(sym), mix) instead

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

     A factory method for `Throw` nodes.

     A factory method for `Throw` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical New constructor to create an object instantiation expression and then wrap it in Throw

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

     A factory method for `Try` nodes.

     A factory method for `Try` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use canonical CaseDef constructors to to create exception catching expressions and then wrap them in Try

128. #### abstract def TypeDef(sym: Universe.Symbol): Universe.TypeDef

     A factory method for `TypeDef` nodes.

     A factory method for `TypeDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical TypeDef constructor to create an abstract type or type parameter and then initialize its position and symbol manually

129. #### abstract def TypeDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.TypeDef

     A factory method for `TypeDef` nodes.

     A factory method for `TypeDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical TypeDef constructor to create a type alias and then initialize its position and symbol manually

130. #### abstract def ValDef(sym: Universe.Symbol): Universe.ValDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical ValDef constructor to create a val with an empty right-hand side and then initialize its position and symbol manually

131. #### abstract def ValDef(sym: Universe.Symbol, rhs: Universe.Tree): Universe.ValDef

     A factory method for `ValDef` nodes.

     A factory method for `ValDef` nodes.

     Annotations
       @deprecated
     Deprecated

       (Since version 2.10.1) Use the canonical ValDef constructor to create a val and then initialize its position and symbol manually

### Concrete Value Members

1. #### final def !=(arg0: AnyRef): Boolean

   Definition Classes
     AnyRef

2. #### final def !=(arg0: Any): Boolean

   Test two objects for inequality.

   Test two objects for inequality.

   returns

     `true` if !(this == that), false otherwise.

   Definition Classes
     Any

3. #### final def ##(): Int

   Equivalent to `x.hashCode` except for boxed numeric types and `null`.

   Equivalent to `x.hashCode` except for boxed numeric types and `null`. For numerics, it returns a hash value which is consistent with value equality: if two value type instances compare as true, then ## will produce the same hash value for each of them. For `null` returns a hashcode where `null.hashCode` throws a `NullPointerException`.

   returns

     a hash value consistent with ==

   Definition Classes
     AnyRef → Any

4. #### def +(other: String): String

   Implicit information
     This member is added by an implicit conversion from Trees to StringAdd performed by method any2stringadd in scala.Predef.
   Definition Classes
     StringAdd

5. #### def ->[B](y: B): (Trees, B)

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

6. #### final def ==(arg0: AnyRef): Boolean

   Definition Classes
     AnyRef

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

   Test two objects for equality.

   Test two objects for equality. The expression `x == that` is equivalent to `if (x eq null) that eq null else x.equals(that)`.

   returns

     `true` if the receiver object is equivalent to the argument; `false` otherwise.

   Definition Classes
     Any

8. #### def Modifiers(flags: Universe.FlagSet): Universe.Modifiers

   The factory for `Modifiers` instances.

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

   The factory for `Modifiers` instances.

10. #### lazy val NoMods: Universe.Modifiers

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

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

    Cast the receiver object to be of type `T0`.

    Cast the receiver object to be of type `T0`.

    Note that the success of a cast at runtime is modulo Scala's erasure semantics. Therefore the expression `1.asInstanceOf[String]` will throw a `ClassCastException` at runtime, while the expression `List(1).asInstanceOf[List[String]]` will not. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the requested type.

    returns

      the receiver object.

    Definition Classes
      Any
    Exceptions thrown
      ClassCastException

      if the receiver object is not an instance of the erasure of type `T0`.

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

    Create a copy of the receiver object.

    Create a copy of the receiver object.

    The default implementation of the `clone` method is platform dependent.

    returns

      a copy of the receiver object.

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

      not specified by SLS as a member of AnyRef

13. #### def ensuring(cond: (Trees) ⇒ Boolean, msg: ⇒ Any): Trees

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

14. #### def ensuring(cond: (Trees) ⇒ Boolean): Trees

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

15. #### def ensuring(cond: Boolean, msg: ⇒ Any): Trees

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

16. #### def ensuring(cond: Boolean): Trees

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

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

    Tests whether the argument (`arg0`) is a reference to the receiver object (`this`).

    Tests whether the argument (`arg0`) is a reference to the receiver object (`this`).

    The `eq` method implements an equivalence relation on non-null instances of `AnyRef`, and has three additional properties:

    - It is consistent: for any non-null instances `x` and `y` of type `AnyRef`, multiple invocations of `x.eq(y)` consistently returns `true` or consistently returns `false`.
    - For any non-null instance `x` of type `AnyRef`, `x.eq(null)` and `null.eq(x)` returns `false`.
    - `null.eq(null)` returns `true`.

    When overriding the `equals` or `hashCode` methods, it is important to ensure that their behavior is consistent with reference equality. Therefore, if two objects are references to each other (`o1 eq o2`), they should be equal to each other (`o1 == o2`) and they should hash to the same value (`o1.hashCode == o2.hashCode`).

    returns

      `true` if the argument is a reference to the receiver object; `false` otherwise.

    Definition Classes
      AnyRef

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

    The equality method for reference types.

    The equality method for reference types. Default implementation delegates to `eq`.

    See also `equals` in scala.Any.

    returns

      `true` if the receiver object is equivalent to the argument; `false` otherwise.

    Definition Classes
      AnyRef → Any

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

    Called by the garbage collector on the receiver object when there are no more references to the object.

    Called by the garbage collector on the receiver object when there are no more references to the object.

    The details of when and if the `finalize` method is invoked, as well as the interaction between `finalize` and non-local returns and exceptions, are all platform dependent.

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

      not specified by SLS as a member of AnyRef

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

    Returns string formatted according to given `format` string.

    Returns string formatted according to given `format` string. Format strings are as for `String.format` (@see java.lang.String.format).

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

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

    A representation that corresponds to the dynamic class of the receiver object.

    A representation that corresponds to the dynamic class of the receiver object.

    The nature of the representation is platform dependent.

    returns

      a representation that corresponds to the dynamic class of the receiver object.

    Definition Classes
      AnyRef → Any
    Note

      not specified by SLS as a member of AnyRef

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

    The hashCode method for reference types.

    The hashCode method for reference types. See hashCode in scala.Any.

    returns

      the hash code value for this object.

    Definition Classes
      AnyRef → Any

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

    Test whether the dynamic type of the receiver object is `T0`.

    Test whether the dynamic type of the receiver object is `T0`.

    Note that the result of the test is modulo Scala's erasure semantics. Therefore the expression `1.isInstanceOf[String]` will return `false`, while the expression `List(1).isInstanceOf[List[String]]` will return `true`. In the latter example, because the type argument is erased as part of compilation it is not possible to check whether the contents of the list are of the specified type.

    returns

      `true` if the receiver object is an instance of erasure of type `T0`; `false` otherwise.

    Definition Classes
      Any

24. #### def itransform(transformer: Universe.Transformer, tree: Universe.Tree): Universe.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

25. #### def itraverse(traverser: Universe.Traverser, tree: Universe.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

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

    Equivalent to `!(this eq that)`.

    Equivalent to `!(this eq that)`.

    returns

      `true` if the argument is not a reference to the receiver object; `false` otherwise.

    Definition Classes
      AnyRef

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

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Wakes up a single thread that is waiting on the receiver object's monitor.

    Definition Classes
      AnyRef
    Note

      not specified by SLS as a member of AnyRef

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

    Wakes up all threads that are waiting on the receiver object's monitor.

    Wakes up all threads that are waiting on the receiver object's monitor.

    Definition Classes
      AnyRef
    Note

      not specified by SLS as a member of AnyRef

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

    Definition Classes
      AnyRef

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

    Creates a String representation of this object.

    Creates a String representation of this object. The default representation is platform dependent. On the java platform it is the concatenation of the class name, "@", and the object's hashcode in hexadecimal.

    returns

      a String representation of the object.

    Definition Classes
      AnyRef → Any

31. #### val treeCopy: Universe.TreeCopier

    The standard (lazy) tree copier.

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

    Definition Classes
      AnyRef
    Annotations
      @throws ( ... )

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

    Definition Classes
      AnyRef
    Annotations
      @throws ( ... )

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

    Definition Classes
      AnyRef
    Annotations
      @throws ( ... )

35. #### def xtransform(transformer: Universe.Transformer, tree: Universe.Tree): Universe.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

36. #### def xtraverse(traverser: Universe.Traverser, tree: Universe.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

37. #### def →[B](y: B): (Trees, B)

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

### Shadowed Implicit Value Members

1. #### val self: Any

   Implicit information
     This member is added by an implicit conversion from Trees to StringAdd performed by method any2stringadd in scala.Predef.
   Shadowing
     This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
     To access this member you can use a type ascription:

         (trees: StringAdd).self

   Definition Classes
     StringAdd

2. #### val self: Any

   Implicit information
     This member is added by an implicit conversion from Trees to StringFormat performed by method any2stringfmt in scala.Predef.
   Shadowing
     This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
     To access this member you can use a type ascription:

         (trees: StringFormat).self

   Definition Classes
     StringFormat

### Deprecated Value Members

1. #### def x: Trees

   Implicit information
     This member is added by an implicit conversion from Trees to ArrowAssoc[Trees] performed by method any2ArrowAssoc in scala.Predef.
   Shadowing
     This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
     To access this member you can use a type ascription:

         (trees: ArrowAssoc[Trees]).x

   Definition Classes
     ArrowAssoc
   Annotations
     @deprecated
   Deprecated

     (Since version 2.10.0) Use `leftOfArrow`instead``

2. #### def x: Trees

   Implicit information
     This member is added by an implicit conversion from Trees to Ensuring[Trees] performed by method any2Ensuring in scala.Predef.
   Shadowing
     This implicitly inherited member is ambiguous. One or more implicitly inherited members have similar signatures, so calling this member may produce an ambiguous implicit conversion compiler error.
     To access this member you can use a type ascription:

         (trees: Ensuring[Trees]).x

   Definition Classes
     Ensuring
   Annotations
     @deprecated
   Deprecated

     (Since version 2.10.0) Use `resultOfEnsuring`instead``

### Inherited from AnyRef

### Inherited from Any

### Inherited by implicit conversion any2stringadd from Trees to StringAdd

### Inherited by implicit conversion any2stringfmt from Trees to StringFormat

### Inherited by implicit conversion any2ArrowAssoc from Trees to ArrowAssoc[Trees]

### Inherited by implicit conversion any2Ensuring from Trees to Ensuring[Trees]

### Trees

### 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.

### Tags

Implicit values that provide `ClassTags` for the reflection classes. These are abstract in the interface but are later filled in to provide ClassTags for the either the runtime reflection or macros entities, depending on the use.

### Ungrouped