treehugger.api

Universe

Related Doc: package api

abstract class Universe extends Symbols with Types with Constants with Scopes with Names with Trees with AnnotationInfos with StandardDefinitions with TreePrinters

Linear Supertypes
Known Subclasses
Ordering
  1. Alphabetic
  2. By inheritance
Inherited
  1. Universe
  2. TreePrinters
  3. StandardDefinitions
  4. AnnotationInfos
  5. Trees
  6. Names
  7. Scopes
  8. Constants
  9. Types
  10. Symbols
  11. AnyRef
  12. Any
  1. Hide All
  2. Show all
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Universe()

Type Members

  1. abstract class AbsAnnotationInfo extends AnyRef

    Definition Classes
    AnnotationInfos
  2. 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
  3. abstract class AbsConstant extends AnyRef

    Definition Classes
    Constants
  4. abstract class AbsDefinitions extends AnyRef

    Definition Classes
    StandardDefinitions
  5. abstract class AbsModifiers extends AnyRef

    Definition Classes
    Trees
  6. 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
  7. abstract class AbsSymbol extends AnyRef

    Definition Classes
    Symbols
  8. 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
  9. 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
  10. 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
  11. abstract type AnnotatedType <: Type

    Definition Classes
    Types
  12. abstract class AnnotatedTypeExtractor extends AnyRef

    Definition Classes
    Types
  13. abstract type AnnotationInfo <: AbsAnnotationInfo

    Definition Classes
    AnnotationInfos
  14. abstract class AnnotationInfoExtractor extends AnyRef

    Definition Classes
    AnnotationInfos
  15. abstract type AnnotationType

    Definition Classes
    Trees
  16. 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
  17. 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
  18. case class Apply(fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.GenericApply with Product with Serializable

    Value application

    Value application

    Definition Classes
    Trees
  19. 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
  20. class ApplyImplicitView extends Universe.Apply

    Definition Classes
    Trees
  21. class ApplyToImplicitArgs extends Universe.Apply

    Definition Classes
    Trees
  22. 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
  23. case class Assign(lhs: Universe.Tree, rhs: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Assignment

    Assignment

    Definition Classes
    Trees
  24. class BackQuotedIdent extends Universe.Ident

    Definition Classes
    Trees
  25. 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

    name
    body

    Definition Classes
    Trees
  26. 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
  27. 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
  28. 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
  29. abstract type ClassInfoType <: CompoundType

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

    The ClassInfo type signature is used to define parents and declarations of classes, traits, and objects. If a class, trait, or object C is declared like this

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

    its ClassInfo type has the following form:

    ClassInfo(List(P_1, ..., P_m), Scope(D_1, ..., D_n), C)
    Definition Classes
    Types
  30. 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
  31. abstract type ClassfileAnnotArg <: AnyRef

    Definition Classes
    AnnotationInfos
  32. 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
  33. abstract type CompoundType <: Type

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

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

    Definition Classes
    Types
  34. 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
  35. abstract type Constant <: AbsConstant

    Definition Classes
    Constants
  36. abstract class ConstantExtractor extends AnyRef

    Definition Classes
    Constants
  37. abstract type ConstantType <: SingletonType

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

    The ConstantType type is not directly written in user programs, but arises as the type of a constant. The REPL expresses constant types like Int(11). Here are some constants with their types.

    1           ConstantType(Constant(1))
    "abc"       ConstantType(Constant("abc"))
    Definition Classes
    Types
  38. 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
  39. 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
  40. 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
  41. sealed trait Enumerator extends Universe.Tree

    Definition Classes
    Trees
  42. abstract type ExistentialType <: Type

    Definition Classes
    Types
  43. abstract class ExistentialTypeExtractor extends AnyRef

    Definition Classes
    Types
  44. case class ExistentialTypeTree(tpt: Universe.Tree, whereClauses: List[Universe.Tree]) extends Universe.Tree with Universe.TypTree with Product with Serializable

    Definition Classes
    Trees
  45. class FilterTreeTraverser extends Universe.Traverser

    Definition Classes
    Trees
  46. class FindTreeTraverser extends Universe.Traverser

    Definition Classes
    Trees
  47. case class ForFilter(pos: Position, test: Universe.Tree) extends Universe.Tree with Universe.Enumerator with Product with Serializable

    Definition Classes
    Trees
  48. case class ForTree(enums: List[Universe.Enumerator], body: Universe.Tree) extends Universe.Tree with Product with Serializable

    Definition Classes
    Trees
  49. 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
  50. 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
  51. case class ForYieldTree(enums: List[Universe.Enumerator], body: Universe.Tree) extends Universe.Tree with Product with Serializable

    Definition Classes
    Trees
  52. class ForeachTreeTraverser extends Universe.Traverser

    Definition Classes
    Trees
  53. trait FuncTree extends Universe.Tree with Universe.TermTree

    A tree for a function expression.

    A tree for a function expression.

    Definition Classes
    Trees
  54. 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
  55. 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
  56. case class Ident(name: Universe.Name) extends Universe.Tree with Universe.RefTree with Product with Serializable

    Identifier <name>

    Identifier <name>

    Definition Classes
    Trees
  57. 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
  58. 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
  59. case class Import(expr: Universe.Tree, selectors: List[Universe.ImportSelector]) extends Universe.Tree with Universe.SymTree with Product with Serializable

    Import clause

    Import clause

    expr
    selectors

    Definition Classes
    Trees
  60. 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
  61. 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
  62. 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
  63. case class Interpolated(interpolator: Universe.Name, args: List[Universe.Tree]) extends Universe.Tree with Product with Serializable

    Definition Classes
    Trees
  64. 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
  65. class LazyTreeCopier extends Universe.TreeCopierOps

    Definition Classes
    Trees
  66. case class Literal(value: Universe.Constant) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Literal

    Literal

    Definition Classes
    Trees
  67. 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
  68. 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
  69. abstract type MethodType <: Type

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

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

    Definition Classes
    Types
  70. 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
  71. abstract type Modifiers <: AbsModifiers

    Definition Classes
    Trees
  72. 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
  73. trait Name extends AnyRef

    Definition Classes
    Names
  74. 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
  75. abstract type NullaryMethodType <: Type

    Definition Classes
    Types
  76. abstract class NullaryMethodTypeExtractor extends AnyRef

    Definition Classes
    Types
  77. 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
  78. abstract type PolyType <: Type

    Definition Classes
    Types
  79. abstract class PolyTypeExtractor extends AnyRef

    Definition Classes
    Types
  80. abstract type Position

  81. 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
  82. class RawTreePrinter extends Universe.TreePrinter

    Definition Classes
    TreePrinters
  83. 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
  84. abstract type RefinedType <: CompoundType

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

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

    P_1 with ... with P_m { D_1; ...; D_n}      RefinedType(List(P_1, ..., P_m), Scope(D_1, ..., D_n))
    P_1 with ... with P_m                       RefinedType(List(P_1, ..., P_m), Scope())
    { D_1; ...; D_n}                            RefinedType(List(AnyRef), Scope(D_1, ..., D_n))
    Definition Classes
    Types
  85. 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
  86. 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
  87. abstract type Scope

    Definition Classes
    Scopes
  88. 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
  89. 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
  90. abstract type SingleType <: SingletonType

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

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

    (T # x).type             SingleType(T, x)
    p.x.type                 SingleType(p.type, x)
    x.type                   SingleType(NoPrefix, x)
    Definition Classes
    Types
  91. 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
  92. abstract type SingletonType >: Null <: Type

    The type of Scala singleton types, i.e.

    The type of Scala singleton types, i.e. types that are inhabited by only one nun-null value. These include types of the forms

    C.this.type
    C.super.type
    x.type

    as well as constant types.

    Definition Classes
    Types
  93. 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
  94. 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
  95. class StrictTreeCopier extends Universe.TreeCopierOps

    Definition Classes
    Trees
  96. 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
  97. abstract type SuperType <: SingletonType

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

    The SuperType type is not directly written, but arises when C.super is used as a prefix in a TypeRef or SingleType. It's internal presentation is

    SuperType(thistpe, supertpe)

    Here, thistpe is the type of the corresponding this-type. For instance, in the type arising from C.super, the thistpe part would be ThisType(C). supertpe is the type of the super class referred to by the super.

    Definition Classes
    Types
  98. 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
  99. 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
  100. abstract type Symbol >: Null <: AbsSymbol

    Definition Classes
    Symbols
  101. 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

    parents
    body

    Definition Classes
    Trees
  102. case class TermName(name: String) extends Name with Product with Serializable

    Definition Classes
    Names
  103. 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
  104. 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
  105. abstract type ThisType <: SingletonType

    The ThisType type describes types of the form on the left with the correspnding ThisType representations to the right.

    The ThisType type describes types of the form on the left with the correspnding ThisType representations to the right.

    C.this.type             ThisType(C)
    Definition Classes
    Types
  106. 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
  107. case class Throw(expr: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Throw expression

    Throw expression

    Definition Classes
    Trees
  108. class Traverser extends AnyRef

    Definition Classes
    Trees
  109. 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
  110. abstract type TreeCopier <: TreeCopierOps

    Definition Classes
    Trees
  111. trait TreeCopierOps extends AnyRef

    Definition Classes
    Trees
  112. trait TreePrinter extends AnyRef

    Definition Classes
    TreePrinters
  113. 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
  114. 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
  115. abstract type Type >: Null <: AbsType

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

    The type of Scala types, and also Scala type signatures. (No difference is internally made between the two).

    Definition Classes
    Types
  116. 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
  117. abstract type TypeBounds <: Type

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

    The TypeBounds type signature is used to indicate lower and upper type bounds of type parameters and abstract types. It is not a first-class type. If an abstract type or type parameter is declared with any of the forms on the left, its type signature is the TypeBounds type on the right.

    T >: L <: U               TypeBounds(L, U)
    T >: L                    TypeBounds(L, Any)
    T <: U                    TypeBounds(Nothing, U)
    Definition Classes
    Types
  118. 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
  119. case class TypeBoundsTree(lo: Universe.Tree, hi: Universe.Tree) extends Universe.Tree with Universe.TypTree with Product with Serializable

    Definition Classes
    Trees
  120. 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
  121. case class TypeName(name: String) extends Name with Product with Serializable

    Definition Classes
    Names
  122. abstract type TypeRef <: Type

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

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

    T # C[T_1, ..., T_n]      TypeRef(T, C, List(T_1, ..., T_n))
    p.C[T_1, ..., T_n]        TypeRef(p.type, C, List(T_1, ..., T_n))
    C[T_1, ..., T_n]          TypeRef(NoPrefix, C, List(T_1, ..., T_n))
    T # C                     TypeRef(T, C, Nil)
    p.C                       TypeRef(p.type, C, Nil)
    C                         TypeRef(NoPrefix, C, Nil)
    Definition Classes
    Types
  123. 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
  124. 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
  125. 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
  126. case class UnApply(fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Definition Classes
    Trees
  127. 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
  128. 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

Abstract Value Members

  1. abstract val AnnotatedType: AnnotatedTypeExtractor

    Definition Classes
    Types
  2. abstract val AnnotationInfo: AnnotationInfoExtractor

    Definition Classes
    AnnotationInfos
  3. abstract val ClassInfoType: ClassInfoTypeExtractor

    The constructor/deconstructor for ClassInfoType instances.

    The constructor/deconstructor for ClassInfoType instances.

    Definition Classes
    Types
  4. abstract val Constant: ConstantExtractor

    Definition Classes
    Constants
  5. abstract val ConstantType: ConstantTypeExtractor

    The constructor/deconstructor for ConstantType instances.

    The constructor/deconstructor for ConstantType instances.

    Definition Classes
    Types
  6. abstract val ExistentialType: ExistentialTypeExtractor

    Definition Classes
    Types
  7. abstract val MethodType: MethodTypeExtractor

    The constructor/deconstructor for MethodType instances.

    The constructor/deconstructor for MethodType instances.

    Definition Classes
    Types
  8. abstract def Modifiers(mods: Set[Modifier.Value] = Set(), privateWithin: Name = EmptyTypeName, annotations: List[AnnotationInfo] = List()): Modifiers

    Definition Classes
    Trees
  9. abstract val NoPosition: Position

  10. abstract val NoPrefix: Type

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

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

    Definition Classes
    Types
  11. abstract val NoSymbol: Symbol

    Definition Classes
    Symbols
  12. abstract val NoType: Type

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

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

    Definition Classes
    Types
  13. abstract val NullaryMethodType: NullaryMethodTypeExtractor

    Definition Classes
    Types
  14. abstract val PolyType: PolyTypeExtractor

    Definition Classes
    Types
  15. abstract val RefinedType: RefinedTypeExtractor

    The constructor/deconstructor for RefinedType instances.

    The constructor/deconstructor for RefinedType instances.

    Definition Classes
    Types
  16. abstract val SingleType: SingleTypeExtractor

    The constructor/deconstructor for SingleType instances.

    The constructor/deconstructor for SingleType instances.

    Definition Classes
    Types
  17. abstract val SuperType: SuperTypeExtractor

    The constructor/deconstructor for SuperType instances.

    The constructor/deconstructor for SuperType instances.

    Definition Classes
    Types
  18. abstract val ThisType: ThisTypeExtractor

    The constructor/deconstructor for ThisType instances.

    The constructor/deconstructor for ThisType instances.

    Definition Classes
    Types
  19. abstract val TypeBounds: TypeBoundsExtractor

    The constructor/deconstructor for TypeBounds instances.

    The constructor/deconstructor for TypeBounds instances.

    Definition Classes
    Types
  20. abstract val TypeRef: TypeRefExtractor

    The constructor/deconstructor for TypeRef instances.

    The constructor/deconstructor for TypeRef instances.

    Definition Classes
    Types
  21. implicit abstract def classfileAnnotArgManifest: ClassManifest[ClassfileAnnotArg]

    Definition Classes
    AnnotationInfos
  22. abstract val definitions: AbsDefinitions

    Definition Classes
    StandardDefinitions
  23. abstract def emptyValDef: ValDef

    Definition Classes
    Trees
  24. abstract def newLazyTreeCopier: TreeCopier

    Definition Classes
    Trees
  25. abstract def newScope(): Scope

    Definition Classes
    Scopes
  26. abstract def newStrictTreeCopier: TreeCopier

    Definition Classes
    Trees
  27. abstract def newTreePrinter(out: PrintWriter): TreePrinter

    Hook to define what show(tree) means.

    Hook to define what show(tree) means.

    Definition Classes
    TreePrinters

Concrete Value Members

  1. final def !=(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  2. final def ##(): Int

    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  4. def BackQuotedIdent(sym: Symbol): BackQuotedIdent

    Definition Classes
    Trees
  5. object BackQuotedIdent extends Serializable

    Definition Classes
    Trees
  6. object EmptyTree extends Universe.Tree with Universe.TermTree with Product with Serializable

    The empty tree

    The empty tree

    Definition Classes
    Trees
  7. def EmptyTypeName: TypeName

    Definition Classes
    Names
  8. def ForFilter(test: Tree): ForFilter

    Definition Classes
    Trees
  9. def ForValDef(name: TermName, tpt: Tree, rhs: Tree): ForValDef

    Definition Classes
    Trees
  10. def ForValFrom(name: TermName, tpt: Tree, rhs: Tree): ForValFrom

    Definition Classes
    Trees
  11. def Ident(sym: Symbol): Ident

    Definition Classes
    Trees
  12. def Infix(qualifier: Tree, sym: Symbol, args: List[Tree]): Infix

    Definition Classes
    Trees
  13. def InfixUnApply(qualifier: Tree, sym: Symbol, args: List[Tree]): InfixUnApply

    Definition Classes
    Trees
  14. def Interpolated(sym: Symbol, args: List[Tree]): Interpolated

    Definition Classes
    Trees
  15. def Select(qualifier: Tree, sym: Symbol): Select

    Definition Classes
    Trees
  16. def TypeTree(tp: Type): TypeTree

    Definition Classes
    Trees
  17. def ValDef(mods: Modifiers, name: Name, tpt: Tree, rhs: Tree): ValDef

    Definition Classes
    Trees
  18. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  19. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  20. final def eq(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  21. def equals(arg0: Any): Boolean

    Definition Classes
    AnyRef → Any
  22. def finalize(): Unit

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  23. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  24. def hashCode(): Int

    Definition Classes
    AnyRef → Any
  25. final def isInstanceOf[T0]: Boolean

    Definition Classes
    Any
  26. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  27. def newTermName(name: String): TermName

    Definition Classes
    Names
  28. def newTypeName(name: String): TypeName

    Definition Classes
    Names
  29. final def notify(): Unit

    Definition Classes
    AnyRef
  30. final def notifyAll(): Unit

    Definition Classes
    AnyRef
  31. implicit def promoteTermNamesAsNecessary(name: Name): TermName

    Definition Classes
    Names
  32. def show(tree: Tree, mkPrinter: (PrintWriter) ⇒ TreePrinter = newTreePrinter): String

    Definition Classes
    TreePrinters
  33. def showRaw(tree: Tree): String

    Definition Classes
    TreePrinters
  34. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  35. def toString(): String

    Definition Classes
    AnyRef → Any
  36. val treeCopy: TreeCopier

    Definition Classes
    Trees
  37. final def wait(): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  38. final def wait(arg0: Long, arg1: Int): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  39. final def wait(arg0: Long): Unit

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  40. def xtraverse(traverser: Traverser, tree: Tree): Unit

    Attributes
    protected
    Definition Classes
    Trees

Inherited from TreePrinters

Inherited from StandardDefinitions

Inherited from AnnotationInfos

Inherited from Trees

Inherited from Names

Inherited from Scopes

Inherited from Constants

Inherited from Types

Inherited from Symbols

Inherited from AnyRef

Inherited from Any

Ungrouped