c

treehugger

Forest

class Forest extends Universe with StdNames with Definitions with Symbols with Types with Constants with Scopes with Names with Trees with AnnotationInfos with TreePrinters with TreeGen with DocGen with TreehuggerDSLs

Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Forest
  2. TreehuggerDSLs
  3. DocGen
  4. TreeGen
  5. TreePrinters
  6. AnnotationInfos
  7. Trees
  8. Scopes
  9. Constants
  10. Types
  11. Symbols
  12. Definitions
  13. StdNames
  14. NameManglers
  15. Universe
  16. TreePrinters
  17. StandardDefinitions
  18. AnnotationInfos
  19. Trees
  20. Names
  21. Scopes
  22. Constants
  23. Types
  24. Symbols
  25. AnyRef
  26. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Forest()

Type Members

  1. sealed abstract class AnnotationInfo extends Forest.AbsAnnotationInfo with Product3[Forest.Type, List[Forest.Tree], List[(Forest.Name, Forest.ClassfileAnnotArg)]]

    Typed information about an annotation.

    Typed information about an annotation. It can be attached to either a symbol or an annotated type.

    Annotations are written to the classfile as Java annotations if atp conforms to ClassfileAnnotation (the classfile parser adds this interface to any Java annotation class).

    Annotations are pickled (written to scala symtab attribute in the classfile) if atp inherits form StaticAnnotation.

    args stores arguments to Scala annotations, represented as typed trees. Note that these trees are not transformed by any phases following the type-checker.

    assocs stores arguments to classfile annotations as name-value pairs.

    Definition Classes
    AnnotationInfos
  2. abstract class ClassfileAnnotArg extends Product

    Arguments to classfile annotations (which are written to bytecode as java annotations) are either:

    Arguments to classfile annotations (which are written to bytecode as java annotations) are either:

    • constants
    • arrays of constants
    • or nested classfile annotations
    Definition Classes
    AnnotationInfos
  3. class CompleteAnnotationInfo extends Forest.AnnotationInfo
    Definition Classes
    AnnotationInfos
  4. case class LiteralAnnotArg (const: Forest.Constant) extends Forest.ClassfileAnnotArg with Product with Serializable

    Represents a compile-time Constant (Boolean, Byte, Short, Char, Int, Long, Float, Double, String, java.lang.Class or an instance of a Java enumeration value).

    Represents a compile-time Constant (Boolean, Byte, Short, Char, Int, Long, Float, Double, String, java.lang.Class or an instance of a Java enumeration value).

    Definition Classes
    AnnotationInfos
  5. case class Constant (value: Any) extends Forest.AbsConstant with Product with Serializable
    Definition Classes
    Constants
  6. trait ValueClassDefinitions extends AnyRef
    Definition Classes
    Definitions
  7. sealed trait DocElement extends AnyRef
    Definition Classes
    DocGen
  8. case class DocTag (tag: String, args: List[Any]) extends Forest.DocElement with Product with Serializable
    Definition Classes
    DocGen
  9. case class DocText (text: String) extends Forest.DocElement with Product with Serializable
    Definition Classes
    DocGen
  10. abstract type AnnotationType
    Definition Classes
    Trees
  11. type Position = String
    Definition Classes
    ForestUniverse
  12. type Scope = List[Tree]
    Definition Classes
    ScopesScopes
  13. type TreeCopier = TreeCopierOps
    Definition Classes
    ForestTrees
  14. trait NameManglingCommon extends AnyRef
    Definition Classes
    NameManglers
  15. trait TermNameMangling extends Forest.NameManglingCommon
    Definition Classes
    NameManglers
  16. trait TypeNameMangling extends Forest.NameManglingCommon
    Definition Classes
    NameManglers
  17. trait Name extends AnyRef
    Definition Classes
    Names
  18. case class TermName (name: String) extends Name with Product with Serializable
    Definition Classes
    Names
  19. case class TypeName (name: String) extends Name with Product with Serializable
    Definition Classes
    Names
  20. trait CommonNames extends AnyRef
    Definition Classes
    StdNames
  21. class JavaKeywords extends AnyRef
    Definition Classes
    StdNames
  22. trait Keywords extends AnyRef

    This should be the first trait in the linearization.

    This should be the first trait in the linearization.

    Definition Classes
    StdNames
  23. abstract class SymbolNames extends AnyRef
    Definition Classes
    StdNames
  24. trait TermNames extends Forest.Keywords with Forest.CommonNames
    Definition Classes
    StdNames
  25. trait TypeNames extends Forest.CommonNames
    Definition Classes
    StdNames
  26. class ClassSymbol extends Forest.TypeSymbol

    A class for class symbols

    A class for class symbols

    Definition Classes
    Symbols
  27. class MethodSymbol extends Forest.TermSymbol

    A class for method symbols

    A class for method symbols

    Definition Classes
    Symbols
  28. class ModuleClassSymbol extends Forest.ClassSymbol

    A class for module class symbols Note: Not all module classes are of this type; when unpickled, we get plain class symbols!

    A class for module class symbols Note: Not all module classes are of this type; when unpickled, we get plain class symbols!

    Definition Classes
    Symbols
  29. class ModuleSymbol extends Forest.TermSymbol

    A class for module symbols

    A class for module symbols

    Definition Classes
    Symbols
  30. abstract class Symbol extends Forest.AbsSymbol with HasFlags
    Definition Classes
    Symbols
  31. class TermSymbol extends Forest.Symbol

    A class for term symbols

    A class for term symbols

    Definition Classes
    Symbols
  32. class TypeSymbol extends Forest.Symbol
    Definition Classes
    Symbols
  33. class TreePrinter extends Forest.TreePrinter
    Definition Classes
    TreePrinters
  34. case class Modifiers (flags: Long, privateWithin: Forest.Name, annotations: List[Forest.AnnotationInfo]) extends Forest.AbsModifiers with HasFlags with Product with Serializable

    privateWithin

    the qualifier for a private (a type name) or tpnme.EMPTY, if none is given.

    annotations

    the annotations for the definition. Note: the typechecker drops these annotations, use the AnnotationInfo's (Symbol.annotations) in later phases.

    Definition Classes
    Trees
  35. abstract class AbsTypeImpl extends Forest.AbsType
    Definition Classes
    Types
  36. case class AnnotatedType (annotations: List[Forest.AnnotationInfo], underlying: Forest.Type, selfsym: Forest.Symbol) extends Forest.Type with Product with Serializable

    A type carrying some annotations.

    A type carrying some annotations. Created by the typechecker when eliminating Annotated trees (see typedAnnotated).

    annotations

    the list of annotations on the type

    underlying

    the type without the annotation

    selfsym

    a "self" symbol with type underlying; only available if -Yself-in-annots is turned on. Can be NoSymbol if it is not used.

    Definition Classes
    Types
  37. case class ClassInfoType (parents: List[Forest.Type], decls: List[Forest.Tree], typeSymbol: Forest.Symbol) extends Forest.CompoundType with Product with Serializable

    A class representing a class info

    A class representing a class info

    Definition Classes
    Types
  38. abstract class CompoundType extends Forest.Type

    A common base class for intersection types and class types

    A common base class for intersection types and class types

    Definition Classes
    Types
  39. abstract case class ConstantType (value: Forest.Constant) extends Forest.SingletonType with Product with Serializable

    A class representing a constant type.

    A class representing a constant type.

    value

    ...

    Definition Classes
    Types
  40. case class ExistentialType (quantified: List[Forest.Tree], underlying: Forest.Type) extends Forest.Type with Product with Serializable
    Definition Classes
    Types
  41. class JavaMethodType extends Forest.MethodType
    Definition Classes
    Types
  42. case class MethodType (params: List[Forest.Symbol], resultType: Forest.Type) extends Forest.Type with Product with Serializable

    A class representing a method type with parameters.

    A class representing a method type with parameters. Note that a parameterless method is represented by a NullaryMethodType:

    def m(): Int MethodType(Nil, Int) def m: Int NullaryMethodType(Int)

    Definition Classes
    Types
  43. case class NamedType (name: Forest.Name, tp: Forest.Type) extends Forest.Type with Product with Serializable

    A class representing types with a name.

    A class representing types with a name. When an application uses named arguments, the named argument types for calling isApplicable are represented as NamedType.

    Definition Classes
    Types
  44. case class NotNullType (underlying: Forest.Type) extends Forest.SubType with Product with Serializable
    Definition Classes
    Types
  45. case class NullaryMethodType (resultType: Forest.Type) extends Forest.Type with Forest.SimpleTypeProxy with Product with Serializable
    Definition Classes
    Types
  46. case class OverloadedType (pre: Forest.Type, alternatives: List[Forest.Symbol]) extends Forest.Type with Product with Serializable

    A class containing the alternatives and type prefix of an overloaded symbol.

    A class containing the alternatives and type prefix of an overloaded symbol. Not used after phase typer.

    Definition Classes
    Types
  47. class PackageClassInfoType extends Forest.ClassInfoType
    Definition Classes
    Types
  48. case class PathType (tree: Forest.Tree) extends Forest.Type with Product with Serializable

    A class representing a path dependent type

    A class representing a path dependent type

    Definition Classes
    Types
  49. final class PathType0 extends Forest.PathType
    Definition Classes
    Types
  50. case class PolyType (typeParams: List[Forest.Symbol], resultType: Forest.Type) extends Forest.Type with Product with Serializable

    A type function or the type of a polymorphic value (and thus of kind *).

    A type function or the type of a polymorphic value (and thus of kind *).

    Before the introduction of NullaryMethodType, a polymorphic nullary method (e.g, def isInstanceOf[T]: Boolean) used to be typed as PolyType(tps, restpe), and a monomorphic one as PolyType(Nil, restpe) This is now: PolyType(tps, NullaryMethodType(restpe)) and NullaryMethodType(restpe) by symmetry to MethodTypes: PolyType(tps, MethodType(params, restpe)) and MethodType(params, restpe)

    Thus, a PolyType(tps, TypeRef(...)) unambiguously indicates a type function (which results from eta-expanding a type constructor alias). Similarly, PolyType(tps, ClassInfoType(...)) is a type constructor.

    A polytype is of kind * iff its resultType is a (nullary) method type.

    Definition Classes
    Types
  51. case class RefinedType (parents: List[Forest.Type], decls: List[Forest.Tree]) extends Forest.CompoundType with Product with Serializable

    A class representing intersection types with refinements of the form <parents_0> with ... with <parents_n> { decls } Cannot be created directly; one should always use refinedType for creation.

    A class representing intersection types with refinements of the form <parents_0> with ... with <parents_n> { decls } Cannot be created directly; one should always use refinedType for creation.

    Definition Classes
    Types
  52. final class RefinedType0 extends Forest.RefinedType
    Definition Classes
    Types
  53. trait SimpleTypeProxy extends Forest.Type

    A proxy for a type (identified by field underlying) that forwards most operations to it (for exceptions, see WrappingProxy, which forwards even more operations).

    A proxy for a type (identified by field underlying) that forwards most operations to it (for exceptions, see WrappingProxy, which forwards even more operations). every operation that is overridden for some kind of types should be forwarded.

    Definition Classes
    Types
  54. abstract case class SingleType (pre: Forest.Type, sym: Forest.Symbol) extends Forest.SingletonType with Product with Serializable

    A class for singleton types of the form <prefix>.<sym.name>.type.

    A class for singleton types of the form <prefix>.<sym.name>.type. Cannot be created directly; one should always use singleType for creation.

    Definition Classes
    Types
  55. abstract class SingletonType extends Forest.SubType with Forest.SimpleTypeProxy with Forest.AbsSingletonType
    Definition Classes
    Types
  56. abstract class SubType extends Forest.Type

    A base class for types that defer some operations to their immediate supertype.

    A base class for types that defer some operations to their immediate supertype.

    Definition Classes
    Types
  57. abstract case class SuperType (thistpe: Forest.Type, supertpe: Forest.Type) extends Forest.SingletonType with Product with Serializable
    Definition Classes
    Types
  58. abstract case class ThisType (sym: Forest.Symbol) extends Forest.SingletonType with Product with Serializable

    A class for this-types of the form <sym>.this.type

    A class for this-types of the form <sym>.this.type

    Definition Classes
    Types
  59. abstract class Type extends Forest.AbsTypeImpl

    The base class for all types

    The base class for all types

    Definition Classes
    Types
  60. abstract case class TypeBounds (lo: Forest.Type, hi: Forest.Type, view: Forest.Type, context: Forest.Type) extends Forest.SubType with Product with Serializable

    A class for the bounds of abstract types and type parameters

    A class for the bounds of abstract types and type parameters

    Definition Classes
    Types
  61. class TypeConstraint extends AnyRef

    A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.

    A class expressing upper and lower bounds constraints of type variables, as well as their instantiations.

    Definition Classes
    Types
  62. abstract case class TypeRef (pre: Forest.Type, sym: Forest.Symbol, args: List[Forest.Type]) extends Forest.Type with Product with Serializable

    A class for named types of the form <prefix>.<sym.name>[args] Cannot be created directly; one should always use typeRef for creation.

    A class for named types of the form <prefix>.<sym.name>[args] Cannot be created directly; one should always use typeRef for creation.

    pre

    ...

    sym

    ...

    args

    ...

    Definition Classes
    Types
  63. class TypeVar extends Forest.Type

    A class representing a type variable: not used after phase typer.

    A class representing a type variable: not used after phase typer.

    A higher-kinded TypeVar has params (Symbols) and typeArgs (Types). A TypeVar with nonEmpty typeArgs can only be instantiated by a higher-kinded type that can be applied to those args. A TypeVar is much like a TypeRef, except it has special logic for equality and subtyping.

    Definition Classes
    Types
  64. final class UniqueConstantType extends Forest.ConstantType with Forest.UniqueType
    Definition Classes
    Types
  65. final class UniqueSingleType extends Forest.SingleType with Forest.UniqueType
    Definition Classes
    Types
  66. final class UniqueSuperType extends Forest.SuperType with Forest.UniqueType
    Definition Classes
    Types
  67. final class UniqueThisType extends Forest.ThisType with Forest.UniqueType
    Definition Classes
    Types
  68. trait UniqueType extends Product
    Definition Classes
    Types
  69. final class UniqueTypeBounds extends Forest.TypeBounds with Forest.UniqueType
    Definition Classes
    Types
  70. final class UniqueTypeRef extends Forest.TypeRef with Forest.UniqueType
    Definition Classes
    Types
  71. abstract class AbsAnnotationInfo extends AnyRef
    Definition Classes
    AnnotationInfos
  72. abstract class AnnotationInfoExtractor extends AnyRef
    Definition Classes
    AnnotationInfos
  73. abstract class AbsConstant extends AnyRef
    Definition Classes
    Constants
  74. abstract class ConstantExtractor extends AnyRef
    Definition Classes
    Constants
  75. abstract class AbsDefinitions extends AnyRef
    Definition Classes
    StandardDefinitions
  76. abstract class AbsSymbol extends AnyRef
    Definition Classes
    Symbols
  77. class RawTreePrinter extends Universe.TreePrinter
    Definition Classes
    TreePrinters
  78. abstract class AbsModifiers extends AnyRef
    Definition Classes
    Trees
  79. case class Alternative (trees: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Alternatives of patterns, eliminated by explicitouter, except for occurrences in encoded Switch stmt (=remaining Match(CaseDef(...))

    Alternatives of patterns, eliminated by explicitouter, except for occurrences in encoded Switch stmt (=remaining Match(CaseDef(...))

    Definition Classes
    Trees
  80. case class Annotated (annot: Universe.Tree, arg: Universe.Tree) extends Universe.Tree with Product with Serializable

    A tree that has an annotation attached to it.

    A tree that has an annotation attached to it. Only used for annotated types and annotation ascriptions, annotations on definitions are stored in the Modifiers. Eliminated by typechecker (typedAnnotated), the annotations are then stored in an AnnotatedType.

    Definition Classes
    Trees
  81. case class AnonFunc (vparamss: List[List[Universe.ValDef]], tpt: Universe.Tree, rhs: Universe.Tree) extends Universe.Tree with Universe.FuncTree with Product with Serializable
    Definition Classes
    Trees
  82. case class AppliedTypeTree (tpt: Universe.Tree, args: List[Universe.Tree]) extends Universe.Tree with Universe.TypTree with Product with Serializable

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

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

    Definition Classes
    Trees
  83. case class Apply (fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.GenericApply with Product with Serializable

    Value application

    Value application

    Definition Classes
    Trees
  84. case class ApplyDynamic (qual: Universe.Tree, args: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Universe.SymTree with Product with Serializable

    Dynamic value application.

    Dynamic value application. In a dynamic application q.f(as)

    • q is stored in qual
    • as is stored in args
    • f is stored as the node's symbol field.
    Definition Classes
    Trees
  85. class ApplyImplicitView extends Universe.Apply
    Definition Classes
    Trees
  86. class ApplyToImplicitArgs extends Universe.Apply
    Definition Classes
    Trees
  87. case class ArrayValue (elemtpt: Universe.Tree, elems: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Array of expressions, needs to be translated in backend,

    Array of expressions, needs to be translated in backend,

    Definition Classes
    Trees
  88. case class Assign (lhs: Universe.Tree, rhs: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Assignment

    Assignment

    Definition Classes
    Trees
  89. class BackQuotedIdent extends Universe.Ident
    Definition Classes
    Trees
  90. case class Bind (name: Universe.Name, body: Universe.Tree) extends Universe.DefTree with Product with Serializable

    Bind of a variable to a rhs pattern, eliminated by explicitouter

    Bind of a variable to a rhs pattern, eliminated by explicitouter

    Definition Classes
    Trees
  91. case class Block (stats: List[Universe.Tree], expr: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Block of expressions (semicolon separated expressions)

    Block of expressions (semicolon separated expressions)

    Definition Classes
    Trees
  92. case class CaseDef (pat: Universe.Tree, guard: Universe.Tree, body: Universe.Tree) extends Universe.Tree with Product with Serializable

    Case clause in a pattern match, eliminated during explicitouter (except for occurrences in switch statements)

    Case clause in a pattern match, eliminated during explicitouter (except for occurrences in switch statements)

    Definition Classes
    Trees
  93. case class ClassDef (mods: Universe.Modifiers, ctormods: Universe.Modifiers, name: Universe.TypeName, tparams: List[Universe.TypeDef], vparams: List[Universe.ValDef], impl: Universe.Template) extends Universe.ImplDef with Product with Serializable

    A class definition.

    A class definition.

    Definition Classes
    Trees
  94. case class Commented (mods: Universe.Modifiers, comment: List[String], expr: Universe.Tree) extends Universe.Tree with Product with Serializable

    Commented expression

    Commented expression

    Definition Classes
    Trees
  95. case class CompoundTypeTree (templ: Universe.Template) extends Universe.Tree with Universe.TypTree with Product with Serializable

    Intersection type <parent1> with ...

    Intersection type <parent1> with ... with <parentN> { <decls> }, eliminated by RefCheck

    Definition Classes
    Trees
  96. case class DefDef (mods: Universe.Modifiers, name: Universe.Name, tparams: List[Universe.TypeDef], vparamss: List[List[Universe.ValDef]], tpt: Universe.Tree, rhs: Universe.Tree) extends Universe.ValOrDefDef with Product with Serializable

    A method or macro definition.

    A method or macro definition.

    name

    The name of the method or macro. Can be a type name in case this is a type macro

    Definition Classes
    Trees
  97. abstract class DefTree extends Universe.Tree with Universe.SymTree

    A tree which defines a symbol-carrying entity.

    A tree which defines a symbol-carrying entity.

    Definition Classes
    Trees
  98. sealed trait Enumerator extends Universe.Tree
    Definition Classes
    Trees
  99. case class ExistentialTypeTree (tpt: Universe.Tree, whereClauses: List[Universe.Tree]) extends Universe.Tree with Universe.TypTree with Product with Serializable
    Definition Classes
    Trees
  100. class FilterTreeTraverser extends Universe.Traverser
    Definition Classes
    Trees
  101. class FindTreeTraverser extends Universe.Traverser
    Definition Classes
    Trees
  102. case class ForFilter (pos: Position, test: Universe.Tree) extends Universe.Tree with Universe.Enumerator with Product with Serializable
    Definition Classes
    Trees
  103. case class ForTree (enums: List[Universe.Enumerator], body: Universe.Tree) extends Universe.Tree with Product with Serializable
    Definition Classes
    Trees
  104. case class ForValDef (pos: Position, name: Universe.TermName, tpt: Universe.Tree, rhs: Universe.Tree) extends Universe.ValOrDefDef with Universe.Enumerator with Product with Serializable
    Definition Classes
    Trees
  105. case class ForValFrom (pos: Position, name: Universe.TermName, tpt: Universe.Tree, rhs: Universe.Tree) extends Universe.ValOrDefDef with Universe.Enumerator with Product with Serializable
    Definition Classes
    Trees
  106. case class ForYieldTree (enums: List[Universe.Enumerator], body: Universe.Tree) extends Universe.Tree with Product with Serializable
    Definition Classes
    Trees
  107. class ForeachTreeTraverser extends Universe.Traverser
    Definition Classes
    Trees
  108. trait FuncTree extends Universe.Tree with Universe.TermTree

    A tree for a function expression.

    A tree for a function expression.

    Definition Classes
    Trees
  109. case class Function (vparams: List[Universe.ValDef], body: Universe.Tree) extends Universe.Tree with Universe.TermTree with Universe.SymTree with Product with Serializable

    Anonymous function, eliminated by analyzer

    Anonymous function, eliminated by analyzer

    Definition Classes
    Trees
  110. abstract class GenericApply extends Universe.Tree with Universe.TermTree

    Common base class for Apply and TypeApply.

    Common base class for Apply and TypeApply. This could in principle be a SymTree, but whether or not a Tree is a SymTree isn't used to settle any interesting questions, and it would add a useless field to all the instances (useless, since GenericApply forwards to the underlying fun.)

    Definition Classes
    Trees
  111. case class Ident (name: Universe.Name) extends Universe.Tree with Universe.RefTree with Product with Serializable

    Identifier <name>

    Identifier <name>

    Definition Classes
    Trees
  112. case class If (cond: Universe.Tree, thenp: Universe.Tree, elsep: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Conditional expression

    Conditional expression

    Definition Classes
    Trees
  113. abstract class ImplDef extends Universe.MemberDef

    A common base class for class and object definitions.

    A common base class for class and object definitions.

    Definition Classes
    Trees
  114. case class Import (expr: Universe.Tree, selectors: List[Universe.ImportSelector]) extends Universe.Tree with Universe.SymTree with Product with Serializable

    Import clause

    Import clause

    Definition Classes
    Trees
  115. case class ImportSelector (name: Universe.Name, namePos: Int, rename: Universe.Name, renamePos: Int) extends Product with Serializable

    Import selector

    Import selector

    Representation of an imported name its optional rename and their optional positions

    name

    the imported name

    namePos

    its position or -1 if undefined

    rename

    the name the import is renamed to (== name if no renaming)

    renamePos

    the position of the rename or -1 if undefined

    Definition Classes
    Trees
  116. case class Infix (qualifier: Universe.Tree, name: Universe.Name, args: List[Universe.Tree]) extends Universe.Tree with Product with Serializable

    Infix application

    Infix application

    Definition Classes
    Trees
  117. case class InfixUnApply (qualifier: Universe.Tree, name: Universe.Name, args: List[Universe.Tree]) extends Universe.Tree with Product with Serializable

    Infix extraction, for example case x :: rest

    Infix extraction, for example case x :: rest

    Definition Classes
    Trees
  118. case class Interpolated (interpolator: Universe.Name, args: List[Universe.Tree]) extends Universe.Tree with Product with Serializable
    Definition Classes
    Trees
  119. case class LabelDef (name: Universe.TermName, param: Universe.Tree, rhs: Universe.Tree) extends Universe.DefTree with Universe.TermTree with Product with Serializable

    A labelled expression.

    A labelled expression. Not expressible in language syntax, but generated by the compiler to simulate while/do-while loops, and also by the pattern matcher.

    The label acts much like a nested function, where params represents the incoming parameters. The symbol given to the LabelDef should have a MethodType, as if it were a nested function.

    Jumps are apply nodes attributed with a label's symbol. The arguments from the apply node will be passed to the label and assigned to the Idents.

    Forward jumps within a block are allowed.

    Definition Classes
    Trees
  120. class LazyTreeCopier extends Universe.TreeCopierOps
    Definition Classes
    Trees
  121. case class Literal (value: Universe.Constant) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Literal

    Literal

    Definition Classes
    Trees
  122. case class Match (selector: Universe.Tree, cases: List[Universe.CaseDef]) extends Universe.Tree with Universe.TermTree with Product with Serializable

    - Pattern matching expression (before explicitouter)

    - Pattern matching expression (before explicitouter)

    • Switch statements (after explicitouter)

    After explicitouter, cases will satisfy the following constraints:

    • all guards are EmptyTree,
    • all patterns will be either Literal(Constant(x:Int)) or Alternative(lit|...|lit)
    • except for an "otherwise" branch, which has pattern Ident(nme.WILDCARD)
    Definition Classes
    Trees
  123. abstract class MemberDef extends Universe.DefTree

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

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

    Definition Classes
    Trees
  124. case class ModuleDef (mods: Universe.Modifiers, name: Universe.TermName, impl: Universe.Template) extends Universe.ImplDef with Product with Serializable

    An object definition, e.g.

    An object definition, e.g. object Foo. Internally, objects are quite frequently called modules to reduce ambiguity.

    Definition Classes
    Trees
  125. case class New (tpt: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Object instantiation One should always use factory method below to build a user level new.

    Object instantiation One should always use factory method below to build a user level new.

    tpt

    a class type

    Definition Classes
    Trees
  126. case class PackageDef (mods: Universe.Modifiers, pid: Universe.RefTree, stats: List[Universe.Tree]) extends Universe.MemberDef with Product with Serializable

    A packaging, such as package pid { stats }

    A packaging, such as package pid { stats }

    Definition Classes
    Trees
  127. case class ProcDef (mods: Universe.Modifiers, name: Universe.Name, tparams: List[Universe.TypeDef], vparamss: List[List[Universe.ValDef]], rhs: Universe.Tree) extends Universe.MemberDef with Product with Serializable

    A procedure definition.

    A procedure definition. Sugar for a function whose return type is Unit.

    name

    The name of the method or macro. Can be a type name in case this is a type macro

    Definition Classes
    Trees
  128. trait RefTree extends Universe.Tree with Universe.SymTree

    A tree which references a symbol-carrying entity.

    A tree which references a symbol-carrying entity. References one, as opposed to defining one; definitions are in DefTrees.

    Definition Classes
    Trees
  129. case class Return (expr: Universe.Tree) extends Universe.Tree with Universe.TermTree with Universe.SymTree with Product with Serializable

    Return expression

    Return expression

    Definition Classes
    Trees
  130. case class Select (qualifier: Universe.Tree, name: Universe.Name) extends Universe.Tree with Universe.RefTree with Product with Serializable

    Designator <qualifier> .

    Designator <qualifier> . <name>

    Definition Classes
    Trees
  131. case class SelectFromTypeTree (qualifier: Universe.Tree, name: Universe.TypeName) extends Universe.Tree with Universe.TypTree with Universe.RefTree with Product with Serializable

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

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

    Definition Classes
    Trees
  132. case class SingletonTypeTree (ref: Universe.Tree) extends Universe.Tree with Universe.TypTree with Product with Serializable

    Singleton type, eliminated by RefCheck

    Singleton type, eliminated by RefCheck

    Definition Classes
    Trees
  133. case class Star (elem: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Repetition of pattern, eliminated by explicitouter

    Repetition of pattern, eliminated by explicitouter

    Definition Classes
    Trees
  134. class StrictTreeCopier extends Universe.TreeCopierOps
    Definition Classes
    Trees
  135. case class Super (qual: Universe.Tree, mix: Universe.TypeName) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Super reference, qual = corresponding this reference

    Super reference, qual = corresponding this reference

    Definition Classes
    Trees
  136. trait SymTree extends Universe.Tree

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

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

    Definition Classes
    Trees
  137. case class Template (parents: List[Universe.Tree], self: Universe.ValDef, body: List[Universe.Tree]) extends Universe.Tree with Universe.SymTree with Product with Serializable

    Instantiation template of a class or trait

    Instantiation template of a class or trait

    Definition Classes
    Trees
  138. trait TermTree extends Universe.Tree

    A tree for a term.

    A tree for a term. Not all terms are TermTrees; use isTerm to reliably identify terms.

    Definition Classes
    Trees
  139. case class This (qual: Universe.TypeName) extends Universe.Tree with Universe.TermTree with Universe.SymTree with Product with Serializable

    Self reference

    Self reference

    Definition Classes
    Trees
  140. case class Throw (expr: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Throw expression

    Throw expression

    Definition Classes
    Trees
  141. class Traverser extends AnyRef
    Definition Classes
    Trees
  142. abstract class Tree extends Product

    Tree is the basis for scala's abstract syntax.

    Tree is the basis for scala's abstract syntax. The nodes are implemented as case classes, and the parameters which initialize a given tree are immutable: however Trees have several mutable fields which are manipulated in the course of typechecking, including pos, symbol, and tpe.

    Newly instantiated trees have tpe set to null (though it may be set immediately thereafter depending on how it is constructed.) When a tree is passed to the typer, typically via typer.typed(tree), under normal circumstances the tpe must be null or the typer will ignore it. Furthermore, the typer is not required to return the same tree it was passed.

    Trees can be easily traversed with e.g. foreach on the root node; for a more nuanced traversal, subclass Traverser. Transformations can be considerably trickier: see the numerous subclasses of Transformer found around the compiler.

    Copying Trees should be done with care depending on whether it need be done lazily or strictly (see LazyTreeCopier and StrictTreeCopier) and on whether the contents of the mutable fields should be copied. The tree copiers will copy the mutable attributes to the new tree; calling Tree#duplicate will copy symbol and tpe, but all the positions will be focused.

    Trees can be coarsely divided into four mutually exclusive categories:

    • TermTrees, representing terms
    • TypTrees, representing types. Note that is TypTree, not TypeTree.
    • SymTrees, which may represent types or terms.
    • Other Trees, which have none of those as parents.

    SymTrees include important nodes Ident and Select, which are used as both terms and types; they are distinguishable based on whether the Name is a TermName or TypeName. The correct way for to test for a type or a term (on any Tree) are the isTerm/isType methods on Tree.

    "Others" are mostly syntactic or short-lived constructs. Examples include CaseDef, which wraps individual match cases: they are neither terms nor types, nor do they carry a symbol. Another example is Parens, which is eliminated during parsing.

    Definition Classes
    Trees
  143. trait TreeCopierOps extends AnyRef
    Definition Classes
    Trees
  144. case class Try (block: Universe.Tree, catches: List[Universe.CaseDef], finalizer: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable
    Definition Classes
    Trees
  145. trait TypTree extends Universe.Tree

    A tree for a type.

    A tree for a type. Not all types are TypTrees; use isType to reliably identify types.

    Definition Classes
    Trees
  146. case class TypeApply (fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.GenericApply with Product with Serializable

    Explicit type application.

    Explicit type application. All signs point toward it being a requirement that args.nonEmpty, but I can't find that explicitly stated anywhere. Unless your last name is odersky, you should probably treat it as true.

    Definition Classes
    Trees
  147. case class TypeBoundsTree (lo: Universe.Tree, hi: Universe.Tree) extends Universe.Tree with Universe.TypTree with Product with Serializable
    Definition Classes
    Trees
  148. case class TypeDef (mods: Universe.Modifiers, name: Universe.TypeName, tparams: List[Universe.TypeDef], rhs: Universe.Tree) extends Universe.MemberDef with Product with Serializable

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

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

    Definition Classes
    Trees
  149. case class TypeTree () extends Universe.Tree with Universe.TypTree with Product with Serializable

    A synthetic tree holding an arbitrary type.

    A synthetic tree holding an arbitrary type. Not to be confused with with TypTree, the trait for trees that are only used for type trees. TypeTree's are inserted in several places, but most notably in RefCheck, where the arbitrary type trees are all replaced by TypeTree's.

    Definition Classes
    Trees
  150. case class Typed (expr: Universe.Tree, tpt: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Type annotation, eliminated by explicit outer

    Type annotation, eliminated by explicit outer

    Definition Classes
    Trees
  151. case class UnApply (fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Product with Serializable
    Definition Classes
    Trees
  152. case class ValDef (mods: Universe.Modifiers, lhs: Universe.Tree, rhs: Universe.Tree) extends Universe.ValOrDefDef with Product with Serializable

    A constant value definition (this includes vars as well, which differ from vals only in having the MUTABLE flag set in their Modifiers.)

    A constant value definition (this includes vars as well, which differ from vals only in having the MUTABLE flag set in their Modifiers.)

    Definition Classes
    Trees
  153. abstract class ValOrDefDef extends Universe.MemberDef

    A common base class for ValDefs and DefDefs.

    A common base class for ValDefs and DefDefs.

    Definition Classes
    Trees
  154. trait AbsCompoundType extends Universe.AbsType

    This class declares methods that are visible in a CompoundType (i.e.

    This class declares methods that are visible in a CompoundType (i.e. a class/trait/object template or refined type of the form

    P_1 with ... with P_m { D_1; ...; D_n }

    P_n

    Definition Classes
    Types
  155. trait AbsSingletonType extends Universe.AbsType

    This class declares methods that are visible in a SingleType.

    This class declares methods that are visible in a SingleType.

    Definition Classes
    Types
  156. abstract class AbsType extends AnyRef

    This class declares operations that are visible in a Type.

    This class declares operations that are visible in a Type.

    Definition Classes
    Types
  157. abstract class AnnotatedTypeExtractor extends AnyRef
    Definition Classes
    Types
  158. 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.

    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.

    Definition Classes
    Types
  159. 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.

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

    Definition Classes
    Types
  160. abstract class ExistentialTypeExtractor extends AnyRef
    Definition Classes
    Types
  161. 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.

    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. If the method is curried, restpe would be another MethodType. Note: MethodType(Nil, Int) would be the type of a method defined with an empty parameter list.

    def f(): Int

    If the method is completely parameterless, as in

    def f: Int

    its type is a NullaryMethodType.

    Definition Classes
    Types
  162. abstract class NullaryMethodTypeExtractor extends AnyRef
    Definition Classes
    Types
  163. abstract class PolyTypeExtractor extends AnyRef
    Definition Classes
    Types
  164. 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.

    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.

    Definition Classes
    Types
  165. 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.

    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.

    Definition Classes
    Types
  166. abstract class SuperTypeExtractor extends AnyRef

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

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

    Definition Classes
    Types
  167. 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.

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

    Definition Classes
    Types
  168. 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.

    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.

    Definition Classes
    Types
  169. 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.

    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.

    Definition Classes
    Types

Value Members

  1. object AnnotationInfo extends Forest.AnnotationInfoExtractor
    Definition Classes
    AnnotationInfosAnnotationInfos
  2. object Constant extends Forest.ConstantExtractor with Serializable
    Definition Classes
    ConstantsConstants
  3. object definitions extends Forest.AbsDefinitions with Forest.ValueClassDefinitions
    Definition Classes
    DefinitionsStandardDefinitions
  4. object DocTag extends Product with Serializable
    Definition Classes
    DocGen
  5. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  6. final def ##(): Int
    Definition Classes
    AnyRef → Any
  7. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  8. def Apply(sym: Symbol, args: Tree*): Apply
    Definition Classes
    Trees
  9. def BackQuotedIdent(sym: Symbol): BackQuotedIdent
    Definition Classes
    Trees
  10. def Bind(sym: Symbol, body: Tree): Bind
    Definition Classes
    Trees
  11. def Block(stats: Tree*): Block

    Block factory that flattens directly nested blocks.

    Block factory that flattens directly nested blocks.

    Definition Classes
    Trees
  12. final val BooleanTag: Int(2)
    Definition Classes
    Constants
  13. final val ByteTag: Int(3)
    Definition Classes
    Constants
  14. def CaseDef(pat: Tree, body: Tree): CaseDef

    casedef shorthand

    casedef shorthand

    Definition Classes
    Trees
  15. final val CharTag: Int(5)
    Definition Classes
    Constants
  16. final val ClassTag: Int(12)
    Definition Classes
    Constants
  17. final val DoubleTag: Int(9)
    Definition Classes
    Constants
  18. val EmptyScope: Nil.type

    The empty scope (immutable).

    The empty scope (immutable).

    Definition Classes
    Scopes
  19. def EmptyTypeName: TypeName
    Definition Classes
    Names
  20. final val EnumTag: Int(13)
    Definition Classes
    Constants
  21. val Flags: treehugger.Flags.type
  22. final val FloatTag: Int(8)
    Definition Classes
    Constants
  23. def ForFilter(test: Tree): ForFilter
    Definition Classes
    Trees
  24. def ForValDef(name: TermName, tpt: Tree, rhs: Tree): ForValDef
    Definition Classes
    Trees
  25. def ForValFrom(name: TermName, tpt: Tree, rhs: Tree): ForValFrom
    Definition Classes
    Trees
  26. def Ident(sym: Symbol): Ident
    Definition Classes
    Trees
  27. def Infix(qualifier: Tree, sym: Symbol, args: List[Tree]): Infix
    Definition Classes
    Trees
  28. def InfixUnApply(qualifier: Tree, sym: Symbol, args: List[Tree]): InfixUnApply
    Definition Classes
    Trees
  29. final val IntTag: Int(6)
    Definition Classes
    Constants
  30. def Interpolated(sym: Symbol, args: List[Tree]): Interpolated
    Definition Classes
    Trees
  31. def LabelDef(sym: Symbol, param: Tree, rhs: Tree): LabelDef

    A TypeDef node which defines abstract type or type parameter for given sym

    A TypeDef node which defines abstract type or type parameter for given sym

    Definition Classes
    Trees
  32. final val LongTag: Int(7)
    Definition Classes
    Constants
  33. val MODULE_SUFFIX_STRING: String
    Definition Classes
    StdNames
  34. def Modifiers(mods: Set[api.Modifier.Value], privateWithin: Name, annotations: List[AnnotationInfo]): Modifiers
    Definition Classes
    TreesTrees
  35. def Modifiers(flags: Long): Modifiers
    Definition Classes
    Trees
  36. def Modifiers(flags: Long, privateWithin: Name): Modifiers
    Definition Classes
    Trees
  37. def ModuleDef(sym: Symbol, impl: Template): ModuleDef

    sym

    the class symbol

    impl

    the implementation template

    Definition Classes
    Trees
  38. 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
  39. 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
  40. lazy val NoMods: Modifiers
    Definition Classes
    Trees
  41. val NoPackage: Ident
    Definition Classes
    Trees
  42. val NoPosition: Position
    Definition Classes
    ForestUniverse
  43. final val NoTag: Int(0)
    Definition Classes
    Constants
  44. final val NullTag: Int(11)
    Definition Classes
    Constants
  45. def Select(qualifier: Tree, sym: Symbol): Select
    Definition Classes
    Trees
  46. final val ShortTag: Int(4)
    Definition Classes
    Constants
  47. final val StringTag: Int(10)
    Definition Classes
    Constants
  48. def Super(qual: Tree): Super
    Definition Classes
    Trees
  49. def Super(sym: Symbol): Super
    Definition Classes
    Trees
  50. def Super(sym: Symbol, mix: TypeName): Super
    Definition Classes
    Trees
  51. final val SymbolTag: Int(14)
    Definition Classes
    Constants
  52. def This(sym: Symbol): This
    Definition Classes
    Trees
  53. def TypeDef(sym: Symbol): TypeDef
    Definition Classes
    Trees
  54. def TypeDef(sym: Symbol, rhs: Tree): TypeDef

    A TypeDef node which defines given sym with given tight hand side rhs.

    A TypeDef node which defines given sym with given tight hand side rhs.

    Definition Classes
    Trees
  55. def TypeTree(tp: Type): TypeTree
    Definition Classes
    Trees
  56. final val UnitTag: Int(1)
    Definition Classes
    Constants
  57. def ValDef(sym: Symbol): ValDef
    Definition Classes
    Trees
  58. def ValDef(sym: Symbol, rhs: Tree): ValDef
    Definition Classes
    Trees
  59. def ValDef(mods: Modifiers, name: Name, tpt: Tree, rhs: Tree): ValDef
    Definition Classes
    Trees
  60. def annotatedType(annots: List[AnnotationInfo], underlying: Type, selfsym: Symbol = NoSymbol): Type

    Creator for AnnotatedTypes.

    Creator for AnnotatedTypes. It returns the underlying type if annotations.isEmpty rather than walking into the assertion.

    Definition Classes
    Types
  61. def appliedType(tycon: Type, args: List[Type]): Type

    A creator for type applications

    A creator for type applications

    Definition Classes
    Types
  62. def appliedType(tycon: Type, args: Type*): Type
    Definition Classes
    Types
  63. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  64. def backquotedPath(t: Tree): String

    Turns a path into a String, introducing backquotes as necessary.

    Turns a path into a String, introducing backquotes as necessary.

    Definition Classes
    TreePrinters
  65. val builtinFullNames: Set[String]
    Definition Classes
    Types
  66. lazy val classfileAnnotArgManifest: ClassManifest[ClassfileAnnotArg]
    Definition Classes
    AnnotationInfosAnnotationInfos
  67. def clone(): AnyRef
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  68. final def compareLengths(xs1: List[_], xs2: List[_]): Int
    Definition Classes
    Types
    Annotations
    @tailrec()
  69. def copyTypeRef(tp: Type, pre: Type, sym: Symbol, args: List[Type]): Type
    Definition Classes
    Types
  70. def encode(str: String): TermName
    Definition Classes
    StdNames
  71. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  72. def equals(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  73. def finalize(): Unit
    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  74. val forMSIL: Boolean
  75. final def getClass(): Class[_]
    Definition Classes
    AnyRef → Any
  76. final def hasLength(xs: List[_], len: Int): Boolean

    Again avoiding calling length, but the lengthCompare interface is clunky.

    Again avoiding calling length, but the lengthCompare interface is clunky.

    Definition Classes
    Types
  77. def hashCode(): Int
    Definition Classes
    AnyRef → Any
  78. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  79. def isTupleTree(tree: Tree): Boolean
    Definition Classes
    TreeGen
  80. val javanme: JavaKeywords
    Definition Classes
    StdNames
  81. final val maxTostringRecursions: Int(50)

    The maximum number of recursions allowed in toString

    The maximum number of recursions allowed in toString

    Definition Classes
    Types
  82. def maybeMkAsInstanceOf(tree: Tree, pt: Type, tpe: Type, beforeRefChecks: Boolean = false): Tree

    Cast tree to pt, unless tpe is a subtype of pt, or pt is Unit.

    Cast tree to pt, unless tpe is a subtype of pt, or pt is Unit.

    Definition Classes
    TreeGen
  83. def mkAnd(tree1: Tree, tree2: Tree): Tree
    Definition Classes
    TreeGen
  84. def mkApplyIfNeeded(qual: Tree): Tree

    If this is a reference to a method with an empty parameter list, wrap it in an apply.

    If this is a reference to a method with an empty parameter list, wrap it in an apply.

    Definition Classes
    TreeGen
  85. def mkAsInstanceOf(value: Tree, tpe: Type, any: Boolean = true, wrapInApply: Boolean = true): Tree

    Builds a cast with given value and type.

    Builds a cast with given value and type.

    Definition Classes
    TreeGen
  86. def mkAttributedIdent(sym: Symbol): Tree
    Definition Classes
    TreeGen
  87. def mkAttributedQualifier(tpe: Type, termSym: Symbol): Tree

    Builds a reference to value whose type is given stable prefix.

    Builds a reference to value whose type is given stable prefix. If the type is unsuitable, e.g. it is a TypeRef for an abstract type variable, then an Ident will be made using termSym as the Ident's symbol. In that case, termSym must not be NoSymbol.

    Definition Classes
    TreeGen
  88. def mkAttributedQualifier(tpe: Type): Tree

    Builds a reference to value whose type is given stable prefix.

    Builds a reference to value whose type is given stable prefix. The type must be suitable for this. For example, it must not be a TypeRef pointing to an abstract type variable.

    Definition Classes
    TreeGen
  89. def mkAttributedRef(sym: Symbol): Tree

    Builds a reference to given symbol.

    Builds a reference to given symbol.

    Definition Classes
    TreeGen
  90. def mkAttributedRef(pre: Type, sym: Symbol): Tree

    Builds a reference to given symbol with given stable prefix.

    Builds a reference to given symbol with given stable prefix.

    Definition Classes
    TreeGen
  91. def mkAttributedSelect(qual: Tree, sym: Symbol): Tree
    Definition Classes
    TreeGen
  92. def mkAttributedThis(sym: Symbol): Tree

    Builds a reference with stable type to given symbol

    Builds a reference with stable type to given symbol

    Definition Classes
    TreeGen
  93. def mkAttributedTypeApply(target: Tree, method: Symbol, targs: List[Type]): Tree
    Definition Classes
    TreeGen
  94. def mkCast(tree: Tree, pt: Type): Tree

    Cast tree to type pt

    Cast tree to type pt

    Definition Classes
    TreeGen
  95. def mkClassOf(tp: Type): Tree

    Apparently we smuggle a Type around as a Literal(Constant(tp)) and the implementation of Constant#tpe is such that x.tpe becomes ClassType(value.asInstanceOf[Type]), i.e.

    Apparently we smuggle a Type around as a Literal(Constant(tp)) and the implementation of Constant#tpe is such that x.tpe becomes ClassType(value.asInstanceOf[Type]), i.e. java.lang.Class[Type]. Can't find any docs on how/why it's done this way. See ticket SI-490 for some interesting comments from lauri alanko suggesting that the type given by classOf[T] is too strong and should be weakened so as not to suggest that classOf[List[String]] is any different from classOf[List[Int]].

    !!! See deconstMap in Erasure for one bug this encoding has induced: I would be very surprised if there aren't more.

    Definition Classes
    TreeGen
  96. def mkIsInstanceOf(value: Tree, tpe: Type, any: Boolean = true, wrapInApply: Boolean = true): Tree

    Builds an instance test with given value and type.

    Builds an instance test with given value and type.

    Definition Classes
    TreeGen
  97. def mkMethodCall(target: Tree, targs: List[Type], args: List[Tree]): Tree
    Definition Classes
    TreeGen
  98. def mkMethodCall(receiver: Tree, method: Symbol, targs: List[Type], args: List[Tree]): Tree
    Definition Classes
    TreeGen
  99. def mkMethodCall(receiver: Symbol, methodName: Name, args: List[Tree]): Tree
    Definition Classes
    TreeGen
  100. def mkMethodCall(target: Tree, args: List[Tree]): Tree
    Definition Classes
    TreeGen
  101. def mkMethodCall(method: Symbol, args: List[Tree]): Tree
    Definition Classes
    TreeGen
  102. def mkMethodCall(method: Symbol, targs: List[Type], args: List[Tree]): Tree
    Definition Classes
    TreeGen
  103. def mkMethodCall(receiver: Symbol, methodName: Name, targs: List[Type], args: List[Tree]): Tree

    A creator for method calls, e.g.

    A creator for method calls, e.g. fn[T1, T2, ...](v1, v2, ...) There are a number of variations.

    receiver

    symbol of the method receiver

    methodName

    name of the method to call

    targs

    type arguments (if Nil, no TypeApply node will be generated)

    args

    value arguments

    returns

    the newly created trees.

    Definition Classes
    TreeGen
  104. def mkNewCons(head: Tree, tail: Tree): Tree

    Builds a list with given head and tail.

    Builds a list with given head and tail.

    Definition Classes
    TreeGen
  105. def mkNil: Tree

    Builds a list with given head and tail.

    Builds a list with given head and tail.

    Definition Classes
    TreeGen
  106. def mkOr(tree1: Tree, tree2: Tree): Tree
    Definition Classes
    TreeGen
  107. def mkScalaDoc(target: Tree, elems: List[DocElement]): Commented
    Definition Classes
    DocGen
  108. def mkTuple(elems: List[Tree]): Tree

    Builds a tuple

    Builds a tuple

    Definition Classes
    TreeGen
  109. def mkTypeApply(target: Tree, method: Symbol, targs: List[Type]): Tree
    Definition Classes
    TreeGen
  110. def mkTypeApply(fun: Tree, targs: List[Tree]): Tree

    Builds a type application node if args.nonEmpty, returns fun otherwise.

    Builds a type application node if args.nonEmpty, returns fun otherwise.

    Definition Classes
    TreeGen
  111. def mkUnattributedRef(sym: Symbol): Tree

    Builds an untyped reference to given symbol.

    Builds an untyped reference to given symbol.

    Definition Classes
    TreeGen
  112. def mkZero(tp: Type): Tree

    Builds a tree representing an undefined local, as in var x: T = _ which is appropriate to the given Type.

    Builds a tree representing an undefined local, as in var x: T = _ which is appropriate to the given Type.

    Definition Classes
    TreeGen
  113. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  114. def newLazyTreeCopier: TreeCopier
    Definition Classes
    ForestTrees
  115. def newScope(): Nil.type

    Create a new scope

    Create a new scope

    Definition Classes
    ScopesScopes
  116. def newStrictTreeCopier: TreeCopier
    Definition Classes
    ForestTrees
  117. def newTermName(name: String): TermName
    Definition Classes
    Names
  118. def newTreePrinter(): TreePrinter
    Definition Classes
    TreePrinters
  119. def newTreePrinter(stream: OutputStream): TreePrinter
    Definition Classes
    TreePrinters
  120. def newTreePrinter(writer: PrintWriter): TreePrinter

    Hook to define what show(tree) means.

    Hook to define what show(tree) means.

    Definition Classes
    TreePrintersTreePrinters
  121. def newTypeName(name: String): TypeName
    Definition Classes
    Names
  122. final def notify(): Unit
    Definition Classes
    AnyRef
  123. final def notifyAll(): Unit
    Definition Classes
    AnyRef
  124. def productConstr: Select
    Definition Classes
    TreeGen
  125. implicit def promoteTermNamesAsNecessary(name: Name): TermName
    Definition Classes
    Names
  126. def quotedName(name: Name): String
    Definition Classes
    TreePrinters
  127. def quotedName(name: Name, decode: Boolean): String

    Adds backticks if the name is a scala keyword.

    Adds backticks if the name is a scala keyword.

    Definition Classes
    TreePrinters
  128. def refinedType(parents: List[Type], owner: Symbol, decls: List[Tree], customToString: String): Type

    the canonical creator for a refined type with a given scope

    the canonical creator for a refined type with a given scope

    Definition Classes
    Types
  129. def rootId(name: Name): Select
    Definition Classes
    TreeGen
  130. def rootScalaDot(name: Name): Select
    Definition Classes
    TreeGen
  131. final def sameLength(xs1: List[_], xs2: List[_]): Boolean

    True if two lists have the same length.

    True if two lists have the same length. Since calling length on linear sequences is O(n), it is an inadvisable way to test length equality.

    Definition Classes
    Types
  132. def scalaAnyRefConstr: Select
    Definition Classes
    TreeGen
  133. def scalaDot(name: Name): Select
    Definition Classes
    TreeGen
  134. def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree, abstractFun: Boolean = false): Tree
    Definition Classes
    TreeGen
  135. def scalaScalaObjectConstr: Select
    Definition Classes
    TreeGen
  136. def scalaUnitConstr: Select
    Definition Classes
    TreeGen
  137. def serializableConstr: Select
    Definition Classes
    TreeGen
  138. def show(tree: Tree, mkPrinter: (PrintWriter) ⇒ Forest.TreePrinter = newTreePrinter): String
    Definition Classes
    TreePrinters
  139. final val showOuterTests: Boolean(false)
    Definition Classes
    TreePrinters
  140. def showRaw(tree: Tree): String
    Definition Classes
    TreePrinters
  141. def singleType(pre: Type, sym: Symbol): Type

    The canonical creator for single-types

    The canonical creator for single-types

    Definition Classes
    Types
  142. lazy val sn: SymbolNames
    Definition Classes
    StdNames
  143. implicit def stringToTermName(s: String): TermName
    Definition Classes
    StdNames
  144. final def synchronized[T0](arg0: ⇒ T0): T0
    Definition Classes
    AnyRef
  145. def toString(): String
    Definition Classes
    AnyRef → Any
  146. val treeCopy: TreeCopier
    Definition Classes
    Trees
  147. def treeToString(args: Any*): String
    Definition Classes
    TreePrinters
  148. def typeRef(pre: Type, sym: Symbol, args: Type*): Type
    Definition Classes
    Types
  149. def typeRef(pre: Type, sym: Symbol, args: List[Type]): Type
    Definition Classes
    Types
  150. def typeRef(sym: Symbol): Type
    Definition Classes
    Types
  151. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  152. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  153. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  154. def xprintTree(treePrinter: TreePrinter, tree: Tree): Unit

    Hook for extensions

    Hook for extensions

    Definition Classes
    TreePrinters
  155. def xtraverse(traverser: Traverser, tree: Tree): Unit
    Attributes
    protected
    Definition Classes
    Trees
  156. object nme extends Forest.TermNames with Forest.TermNameMangling
    Definition Classes
    StdNames
  157. object tpnme extends Forest.TypeNames with Forest.TypeNameMangling
    Definition Classes
    StdNames
  158. object NoSymbol extends Forest.Symbol
    Definition Classes
    SymbolsSymbols
  159. object ConsoleWriter extends Writer

    A writer that writes to the current Console and is sensitive to replacement of the Console's output stream.

    A writer that writes to the current Console and is sensitive to replacement of the Console's output stream.

    Definition Classes
    TreePrinters
  160. object treehuggerDSL
    Definition Classes
    TreehuggerDSLs
  161. object emptyValDef extends Forest.ValDef
    Definition Classes
    TreesTrees
  162. object AnnotatedType extends Forest.AnnotatedTypeExtractor with Serializable
    Definition Classes
    TypesTypes
  163. object ClassInfoType extends Forest.ClassInfoTypeExtractor with Serializable

    The constructor/deconstructor for ClassInfoType instances.

    The constructor/deconstructor for ClassInfoType instances.

    Definition Classes
    TypesTypes
  164. object ConstantType extends Forest.ConstantTypeExtractor with Serializable

    The constructor/deconstructor for ConstantType instances.

    The constructor/deconstructor for ConstantType instances.

    Definition Classes
    TypesTypes
  165. object ErrorType extends Forest.Type with Product with Serializable

    An object representing an erroneous type

    An object representing an erroneous type

    Definition Classes
    Types
  166. object ExistentialType extends Forest.ExistentialTypeExtractor with Serializable
    Definition Classes
    TypesTypes
  167. object MethodType extends Forest.MethodTypeExtractor with Serializable

    The constructor/deconstructor for MethodType instances.

    The constructor/deconstructor for MethodType instances.

    Definition Classes
    TypesTypes
  168. object NoPrefix extends Forest.Type with Product with Serializable

    An object representing a non-existing prefix

    An object representing a non-existing prefix

    Definition Classes
    TypesTypes
  169. object NoType extends Forest.Type with Product with Serializable

    An object representing a non-existing type

    An object representing a non-existing type

    Definition Classes
    TypesTypes
  170. object NullaryMethodType extends Forest.NullaryMethodTypeExtractor with Serializable
    Definition Classes
    TypesTypes
  171. object PathType extends Serializable
    Definition Classes
    Types
  172. object PolyType extends Forest.PolyTypeExtractor with Serializable
    Definition Classes
    TypesTypes
  173. object RefinedType extends Forest.RefinedTypeExtractor with Serializable

    The constructor/deconstructor for RefinedType instances.

    The constructor/deconstructor for RefinedType instances.

    Definition Classes
    TypesTypes
  174. object SingleType extends Forest.SingleTypeExtractor with Serializable

    The constructor/deconstructor for SingleType instances.

    The constructor/deconstructor for SingleType instances.

    Definition Classes
    TypesTypes
  175. object SuperType extends Forest.SuperTypeExtractor with Serializable

    The constructor/deconstructor for SuperType instances.

    The constructor/deconstructor for SuperType instances.

    Definition Classes
    TypesTypes
  176. object ThisType extends Forest.ThisTypeExtractor with Serializable

    The constructor/deconstructor for ThisType instances.

    The constructor/deconstructor for ThisType instances.

    Definition Classes
    TypesTypes
  177. object TypeBounds extends Forest.TypeBoundsExtractor with Serializable

    The constructor/deconstructor for TypeBounds instances.

    The constructor/deconstructor for TypeBounds instances.

    Definition Classes
    TypesTypes
  178. object TypeRef extends Forest.TypeRefExtractor with Serializable

    The constructor/deconstructor for TypeRef instances.

    The constructor/deconstructor for TypeRef instances.

    Definition Classes
    TypesTypes
  179. object TypeVar
    Definition Classes
    Types
  180. object WildcardType extends Forest.Type with Product with Serializable

    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
  181. object BackQuotedIdent extends Serializable
    Definition Classes
    Trees
  182. object EmptyTree extends Universe.Tree with Universe.TermTree with Product with Serializable

    The empty tree

    The empty tree

    Definition Classes
    Trees

Inherited from TreehuggerDSLs

Inherited from DocGen

Inherited from TreeGen

Inherited from TreePrinters

Inherited from AnnotationInfos

Inherited from Trees

Inherited from Scopes

Inherited from Constants

Inherited from Types

Inherited from Symbols

Inherited from Definitions

Inherited from StdNames

Inherited from NameManglers

Inherited from Universe

Inherited from api.TreePrinters

Inherited from StandardDefinitions

Inherited from api.AnnotationInfos

Inherited from api.Trees

Inherited from Names

Inherited from api.Scopes

Inherited from api.Constants

Inherited from api.Types

Inherited from api.Symbols

Inherited from AnyRef

Inherited from Any

Ungrouped