treehugger

Forest

Related Doc: package treehugger

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

Linear Supertypes
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
Learn more about member selection
Visibility
  1. Public
  2. All

Instance Constructors

  1. new Forest()

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. abstract class AbsTypeImpl extends Forest.AbsType

    Definition Classes
    Types
  10. 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
  11. 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
  12. 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
  13. abstract class AnnotatedTypeExtractor extends AnyRef

    Definition Classes
    Types
  14. 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
  15. abstract class AnnotationInfoExtractor extends AnyRef

    Definition Classes
    AnnotationInfos
  16. abstract type AnnotationType

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

    Value application

    Value application

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

    Definition Classes
    Trees
  22. class ApplyToImplicitArgs extends Universe.Apply

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

    Assignment

    Assignment

    Definition Classes
    Trees
  25. class BackQuotedIdent extends Universe.Ident

    Definition Classes
    Trees
  26. 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
  27. 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
  28. 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
  29. 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
  30. 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
  31. 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
  32. class ClassSymbol extends Forest.TypeSymbol

    A class for class symbols

    A class for class symbols

    Definition Classes
    Symbols
  33. 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
  34. 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
  35. trait CommonNames extends AnyRef

    Definition Classes
    StdNames
  36. class CompleteAnnotationInfo extends Forest.AnnotationInfo

    Definition Classes
    AnnotationInfos
  37. 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
  38. 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
  39. case class Constant(value: Any) extends Forest.AbsConstant with Product with Serializable

    Definition Classes
    Constants
  40. abstract class ConstantExtractor extends AnyRef

    Definition Classes
    Constants
  41. 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
  42. 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
  43. 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
  44. 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
  45. sealed trait DocElement extends AnyRef

    Definition Classes
    DocGen
  46. case class DocTag(tag: String, args: List[Any]) extends Forest.DocElement with Product with Serializable

    Definition Classes
    DocGen
  47. case class DocText(text: String) extends Forest.DocElement with Product with Serializable

    Definition Classes
    DocGen
  48. sealed trait Enumerator extends Universe.Tree

    Definition Classes
    Trees
  49. case class ExistentialType(quantified: List[Forest.Tree], underlying: Forest.Type) extends Forest.Type with Product with Serializable

    Definition Classes
    Types
  50. abstract class ExistentialTypeExtractor extends AnyRef

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

    Definition Classes
    Trees
  52. class FilterTreeTraverser extends Universe.Traverser

    Definition Classes
    Trees
  53. class FindTreeTraverser extends Universe.Traverser

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

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

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

    Definition Classes
    Trees
  59. class ForeachTreeTraverser extends Universe.Traverser

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

    A tree for a function expression.

    A tree for a function expression.

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

    Identifier <name>

    Identifier <name>

    Definition Classes
    Trees
  64. 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
  65. 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
  66. 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
  67. 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
  68. 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
  69. 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
  70. case class Interpolated(interpolator: Universe.Name, args: List[Universe.Tree]) extends Universe.Tree with Product with Serializable

    Definition Classes
    Trees
  71. class JavaKeywords extends AnyRef

    Definition Classes
    StdNames
  72. class JavaMethodType extends Forest.MethodType

    Definition Classes
    Types
  73. 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
  74. 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
  75. class LazyTreeCopier extends Universe.TreeCopierOps

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

    Literal

    Literal

    Definition Classes
    Trees
  77. 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
  78. 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
  79. 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
  80. class MethodSymbol extends Forest.TermSymbol

    A class for method symbols

    A class for method symbols

    Definition Classes
    Symbols
  81. 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
  82. 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
  83. 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
  84. 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
  85. 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
  86. class ModuleSymbol extends Forest.TermSymbol

    A class for module symbols

    A class for module symbols

    Definition Classes
    Symbols
  87. trait Name extends AnyRef

    Definition Classes
    Names
  88. trait NameManglingCommon extends AnyRef

    Definition Classes
    NameManglers
  89. 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
  90. 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
  91. case class NotNullType(underlying: Forest.Type) extends Forest.SubType with Product with Serializable

    Definition Classes
    Types
  92. case class NullaryMethodType(resultType: Forest.Type) extends Forest.Type with Forest.SimpleTypeProxy with Product with Serializable

    Definition Classes
    Types
  93. abstract class NullaryMethodTypeExtractor extends AnyRef

    Definition Classes
    Types
  94. 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
  95. class PackageClassInfoType extends Forest.ClassInfoType

    Definition Classes
    Types
  96. 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
  97. 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
  98. final class PathType0 extends Forest.PathType

    Definition Classes
    Types
  99. 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
  100. abstract class PolyTypeExtractor extends AnyRef

    Definition Classes
    Types
  101. type Position = String

    Definition Classes
    Forest → Universe
  102. 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
  103. class RawTreePrinter extends Universe.TreePrinter

    Definition Classes
    TreePrinters
  104. 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
  105. 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
  106. final class RefinedType0 extends Forest.RefinedType

    Definition Classes
    Types
  107. 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
  108. 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
  109. type Scope = List[Tree]

    Definition Classes
    Scopes → Scopes
  110. 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
  111. 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
  112. 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
  113. 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
  114. 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
  115. abstract class SingletonType extends Forest.SubType with Forest.SimpleTypeProxy with Forest.AbsSingletonType

    Definition Classes
    Types
  116. 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
  117. 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
  118. class StrictTreeCopier extends Universe.TreeCopierOps

    Definition Classes
    Trees
  119. 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
  120. 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
  121. abstract case class SuperType(thistpe: Forest.Type, supertpe: Forest.Type) extends Forest.SingletonType with Product with Serializable

    Definition Classes
    Types
  122. 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
  123. 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
  124. abstract class Symbol extends Forest.AbsSymbol with HasFlags

    Definition Classes
    Symbols
  125. abstract class SymbolNames extends AnyRef

    Definition Classes
    StdNames
  126. 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
  127. case class TermName(name: String) extends Name with Product with Serializable

    Definition Classes
    Names
  128. trait TermNameMangling extends Forest.NameManglingCommon

    Definition Classes
    NameManglers
  129. trait TermNames extends Forest.Keywords with Forest.CommonNames

    Definition Classes
    StdNames
  130. class TermSymbol extends Forest.Symbol

    A class for term symbols

    A class for term symbols

    Definition Classes
    Symbols
  131. 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
  132. 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
  133. 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
  134. 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
  135. case class Throw(expr: Universe.Tree) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Throw expression

    Throw expression

    Definition Classes
    Trees
  136. class Traverser extends AnyRef

    Definition Classes
    Trees
  137. 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
  138. type TreeCopier = TreeCopierOps

    Definition Classes
    Forest → Trees
  139. trait TreeCopierOps extends AnyRef

    Definition Classes
    Trees
  140. class TreePrinter extends Forest.TreePrinter

    Definition Classes
    TreePrinters
  141. 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
  142. 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
  143. abstract class Type extends Forest.AbsTypeImpl

    The base class for all types

    The base class for all types

    Definition Classes
    Types
  144. 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
  145. 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
  146. 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
  147. case class TypeBoundsTree(lo: Universe.Tree, hi: Universe.Tree) extends Universe.Tree with Universe.TypTree with Product with Serializable

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

    Definition Classes
    Names
  151. trait TypeNameMangling extends Forest.NameManglingCommon

    Definition Classes
    NameManglers
  152. trait TypeNames extends Forest.CommonNames

    Definition Classes
    StdNames
  153. 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
  154. 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
  155. class TypeSymbol extends Forest.Symbol

    Definition Classes
    Symbols
  156. 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
  157. 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
  158. 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
  159. case class UnApply(fun: Universe.Tree, args: List[Universe.Tree]) extends Universe.Tree with Universe.TermTree with Product with Serializable

    Definition Classes
    Trees
  160. final class UniqueConstantType extends Forest.ConstantType with Forest.UniqueType

    Definition Classes
    Types
  161. final class UniqueSingleType extends Forest.SingleType with Forest.UniqueType

    Definition Classes
    Types
  162. final class UniqueSuperType extends Forest.SuperType with Forest.UniqueType

    Definition Classes
    Types
  163. final class UniqueThisType extends Forest.ThisType with Forest.UniqueType

    Definition Classes
    Types
  164. trait UniqueType extends Product

    Definition Classes
    Types
  165. final class UniqueTypeBounds extends Forest.TypeBounds with Forest.UniqueType

    Definition Classes
    Types
  166. final class UniqueTypeRef extends Forest.TypeRef with Forest.UniqueType

    Definition Classes
    Types
  167. 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
  168. 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
  169. trait ValueClassDefinitions extends AnyRef

    Definition Classes
    Definitions

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. object AnnotatedType extends Forest.AnnotatedTypeExtractor with Serializable

    Definition Classes
    Types → Types
  5. object AnnotationInfo extends Forest.AnnotationInfoExtractor

    Definition Classes
    AnnotationInfos → AnnotationInfos
  6. def Apply(sym: Symbol, args: Tree*): Apply

    Definition Classes
    Trees
  7. def BackQuotedIdent(sym: Symbol): BackQuotedIdent

    Definition Classes
    Trees
  8. object BackQuotedIdent extends Serializable

    Definition Classes
    Trees
  9. def Bind(sym: Symbol, body: Tree): Bind

    Definition Classes
    Trees
  10. def Block(stats: Tree*): Block

    Block factory that flattens directly nested blocks.

    Block factory that flattens directly nested blocks.

    Definition Classes
    Trees
  11. final val BooleanTag: Int(2)

    Definition Classes
    Constants
  12. final val ByteTag: Int(3)

    Definition Classes
    Constants
  13. def CaseDef(pat: Tree, body: Tree): CaseDef

    casedef shorthand

    casedef shorthand

    Definition Classes
    Trees
  14. final val CharTag: Int(5)

    Definition Classes
    Constants
  15. object ClassInfoType extends Forest.ClassInfoTypeExtractor with Serializable

    The constructor/deconstructor for ClassInfoType instances.

    The constructor/deconstructor for ClassInfoType instances.

    Definition Classes
    Types → Types
  16. final val ClassTag: Int(12)

    Definition Classes
    Constants
  17. 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
  18. object Constant extends Forest.ConstantExtractor with Serializable

    Definition Classes
    Constants → Constants
  19. object ConstantType extends Forest.ConstantTypeExtractor with Serializable

    The constructor/deconstructor for ConstantType instances.

    The constructor/deconstructor for ConstantType instances.

    Definition Classes
    Types → Types
  20. object DocTag extends Product with Serializable

    Definition Classes
    DocGen
  21. final val DoubleTag: Int(9)

    Definition Classes
    Constants
  22. val EmptyScope: Nil.type

    The empty scope (immutable).

    The empty scope (immutable).

    Definition Classes
    Scopes
  23. object EmptyTree extends Universe.Tree with Universe.TermTree with Product with Serializable

    The empty tree

    The empty tree

    Definition Classes
    Trees
  24. def EmptyTypeName: TypeName

    Definition Classes
    Names
  25. final val EnumTag: Int(13)

    Definition Classes
    Constants
  26. object ErrorType extends Forest.Type with Product with Serializable

    An object representing an erroneous type

    An object representing an erroneous type

    Definition Classes
    Types
  27. object ExistentialType extends Forest.ExistentialTypeExtractor with Serializable

    Definition Classes
    Types → Types
  28. val Flags: treehugger.Flags.type

  29. final val FloatTag: Int(8)

    Definition Classes
    Constants
  30. def ForFilter(test: Tree): ForFilter

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

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

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

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

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

    Definition Classes
    Trees
  36. final val IntTag: Int(6)

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

    Definition Classes
    Trees
  38. 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
  39. final val LongTag: Int(7)

    Definition Classes
    Constants
  40. val MODULE_SUFFIX_STRING: String

    Definition Classes
    StdNames
  41. object MethodType extends Forest.MethodTypeExtractor with Serializable

    The constructor/deconstructor for MethodType instances.

    The constructor/deconstructor for MethodType instances.

    Definition Classes
    Types → Types
  42. def Modifiers(mods: Set[api.Modifier.Value], privateWithin: Name, annotations: List[AnnotationInfo]): Modifiers

    Definition Classes
    Trees → Trees
  43. def Modifiers(flags: Long): Modifiers

    Definition Classes
    Trees
  44. def Modifiers(flags: Long, privateWithin: Name): Modifiers

    Definition Classes
    Trees
  45. def ModuleDef(sym: Symbol, impl: Template): ModuleDef

    sym

    the class symbol

    impl

    the implementation template

    Definition Classes
    Trees
  46. 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
  47. 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
  48. lazy val NoMods: Modifiers

    Definition Classes
    Trees
  49. val NoPackage: Ident

    Definition Classes
    Trees
  50. val NoPosition: Position

    Definition Classes
    Forest → Universe
  51. 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
    Types → Types
  52. object NoSymbol extends Forest.Symbol

    Definition Classes
    Symbols → Symbols
  53. final val NoTag: Int(0)

    Definition Classes
    Constants
  54. 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
    Types → Types
  55. final val NullTag: Int(11)

    Definition Classes
    Constants
  56. object NullaryMethodType extends Forest.NullaryMethodTypeExtractor with Serializable

    Definition Classes
    Types → Types
  57. object PathType extends Serializable

    Definition Classes
    Types
  58. object PolyType extends Forest.PolyTypeExtractor with Serializable

    Definition Classes
    Types → Types
  59. object RefinedType extends Forest.RefinedTypeExtractor with Serializable

    The constructor/deconstructor for RefinedType instances.

    The constructor/deconstructor for RefinedType instances.

    Definition Classes
    Types → Types
  60. def Select(qualifier: Tree, sym: Symbol): Select

    Definition Classes
    Trees
  61. final val ShortTag: Int(4)

    Definition Classes
    Constants
  62. object SingleType extends Forest.SingleTypeExtractor with Serializable

    The constructor/deconstructor for SingleType instances.

    The constructor/deconstructor for SingleType instances.

    Definition Classes
    Types → Types
  63. final val StringTag: Int(10)

    Definition Classes
    Constants
  64. def Super(qual: Tree): Super

    Definition Classes
    Trees
  65. def Super(sym: Symbol): Super

    Definition Classes
    Trees
  66. def Super(sym: Symbol, mix: TypeName): Super

    Definition Classes
    Trees
  67. object SuperType extends Forest.SuperTypeExtractor with Serializable

    The constructor/deconstructor for SuperType instances.

    The constructor/deconstructor for SuperType instances.

    Definition Classes
    Types → Types
  68. final val SymbolTag: Int(14)

    Definition Classes
    Constants
  69. def This(sym: Symbol): This

    Definition Classes
    Trees
  70. object ThisType extends Forest.ThisTypeExtractor with Serializable

    The constructor/deconstructor for ThisType instances.

    The constructor/deconstructor for ThisType instances.

    Definition Classes
    Types → Types
  71. object TypeBounds extends Forest.TypeBoundsExtractor with Serializable

    The constructor/deconstructor for TypeBounds instances.

    The constructor/deconstructor for TypeBounds instances.

    Definition Classes
    Types → Types
  72. def TypeDef(sym: Symbol): TypeDef

    Definition Classes
    Trees
  73. 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
  74. object TypeRef extends Forest.TypeRefExtractor with Serializable

    The constructor/deconstructor for TypeRef instances.

    The constructor/deconstructor for TypeRef instances.

    Definition Classes
    Types → Types
  75. def TypeTree(tp: Type): TypeTree

    Definition Classes
    Trees
  76. object TypeVar

    Definition Classes
    Types
  77. final val UnitTag: Int(1)

    Definition Classes
    Constants
  78. def ValDef(sym: Symbol): ValDef

    Definition Classes
    Trees
  79. def ValDef(sym: Symbol, rhs: Tree): ValDef

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

    Definition Classes
    Trees
  81. 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
  82. 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
  83. def appliedType(tycon: Type, args: List[Type]): Type

    A creator for type applications

    A creator for type applications

    Definition Classes
    Types
  84. def appliedType(tycon: Type, args: Type*): Type

    Definition Classes
    Types
  85. final def asInstanceOf[T0]: T0

    Definition Classes
    Any
  86. 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
  87. val builtinFullNames: Set[String]

    Definition Classes
    Types
  88. lazy val classfileAnnotArgManifest: ClassManifest[ClassfileAnnotArg]

    Definition Classes
    AnnotationInfos → AnnotationInfos
  89. def clone(): AnyRef

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  90. final def compareLengths(xs1: List[_], xs2: List[_]): Int

    Definition Classes
    Types
    Annotations
    @tailrec()
  91. def copyTypeRef(tp: Type, pre: Type, sym: Symbol, args: List[Type]): Type

    Definition Classes
    Types
  92. object definitions extends Forest.AbsDefinitions with Forest.ValueClassDefinitions

    Definition Classes
    Definitions → StandardDefinitions
  93. object emptyValDef extends Forest.ValDef

    Definition Classes
    Trees → Trees
  94. def encode(str: String): TermName

    Definition Classes
    StdNames
  95. final def eq(arg0: AnyRef): Boolean

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

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

    Attributes
    protected[java.lang]
    Definition Classes
    AnyRef
    Annotations
    @throws( classOf[java.lang.Throwable] )
  98. val forMSIL: Boolean

  99. final def getClass(): Class[_]

    Definition Classes
    AnyRef → Any
  100. 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
  101. def hashCode(): Int

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

    Definition Classes
    Any
  103. def isTupleTree(tree: Tree): Boolean

    Definition Classes
    TreeGen
  104. val javanme: JavaKeywords

    Definition Classes
    StdNames
  105. final val maxTostringRecursions: Int(50)

    The maximum number of recursions allowed in toString

    The maximum number of recursions allowed in toString

    Definition Classes
    Types
  106. 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
  107. def mkAnd(tree1: Tree, tree2: Tree): Tree

    Definition Classes
    TreeGen
  108. 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
  109. 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
  110. def mkAttributedIdent(sym: Symbol): Tree

    Definition Classes
    TreeGen
  111. 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
  112. 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
  113. def mkAttributedRef(sym: Symbol): Tree

    Builds a reference to given symbol.

    Builds a reference to given symbol.

    Definition Classes
    TreeGen
  114. 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
  115. def mkAttributedSelect(qual: Tree, sym: Symbol): Tree

    Definition Classes
    TreeGen
  116. 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
  117. def mkAttributedTypeApply(target: Tree, method: Symbol, targs: List[Type]): Tree

    Definition Classes
    TreeGen
  118. def mkCast(tree: Tree, pt: Type): Tree

    Cast tree to type pt

    Cast tree to type pt

    Definition Classes
    TreeGen
  119. 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
  120. 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
  121. def mkMethodCall(target: Tree, targs: List[Type], args: List[Tree]): Tree

    Definition Classes
    TreeGen
  122. def mkMethodCall(receiver: Tree, method: Symbol, targs: List[Type], args: List[Tree]): Tree

    Definition Classes
    TreeGen
  123. def mkMethodCall(receiver: Symbol, methodName: Name, args: List[Tree]): Tree

    Definition Classes
    TreeGen
  124. def mkMethodCall(target: Tree, args: List[Tree]): Tree

    Definition Classes
    TreeGen
  125. def mkMethodCall(method: Symbol, args: List[Tree]): Tree

    Definition Classes
    TreeGen
  126. def mkMethodCall(method: Symbol, targs: List[Type], args: List[Tree]): Tree

    Definition Classes
    TreeGen
  127. 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
  128. 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
  129. def mkNil: Tree

    Builds a list with given head and tail.

    Builds a list with given head and tail.

    Definition Classes
    TreeGen
  130. def mkOr(tree1: Tree, tree2: Tree): Tree

    Definition Classes
    TreeGen
  131. def mkScalaDoc(target: Tree, elems: List[DocElement]): Commented

    Definition Classes
    DocGen
  132. def mkTuple(elems: List[Tree]): Tree

    Builds a tuple

    Builds a tuple

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

    Definition Classes
    TreeGen
  134. 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
  135. def mkUnattributedRef(sym: Symbol): Tree

    Builds an untyped reference to given symbol.

    Builds an untyped reference to given symbol.

    Definition Classes
    TreeGen
  136. 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
  137. final def ne(arg0: AnyRef): Boolean

    Definition Classes
    AnyRef
  138. def newLazyTreeCopier: TreeCopier

    Definition Classes
    Forest → Trees
  139. def newScope(): Nil.type

    Create a new scope

    Create a new scope

    Definition Classes
    Scopes → Scopes
  140. def newStrictTreeCopier: TreeCopier

    Definition Classes
    Forest → Trees
  141. def newTermName(name: String): TermName

    Definition Classes
    Names
  142. def newTreePrinter(): TreePrinter

    Definition Classes
    TreePrinters
  143. def newTreePrinter(stream: OutputStream): TreePrinter

    Definition Classes
    TreePrinters
  144. def newTreePrinter(writer: PrintWriter): TreePrinter

    Hook to define what show(tree) means.

    Hook to define what show(tree) means.

    Definition Classes
    TreePrinters → TreePrinters
  145. def newTypeName(name: String): TypeName

    Definition Classes
    Names
  146. object nme extends Forest.TermNames with Forest.TermNameMangling

    Definition Classes
    StdNames
  147. final def notify(): Unit

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

    Definition Classes
    AnyRef
  149. def productConstr: Select

    Definition Classes
    TreeGen
  150. implicit def promoteTermNamesAsNecessary(name: Name): TermName

    Definition Classes
    Names
  151. def quotedName(name: Name): String

    Definition Classes
    TreePrinters
  152. 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
  153. 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
  154. def rootId(name: Name): Select

    Definition Classes
    TreeGen
  155. def rootScalaDot(name: Name): Select

    Definition Classes
    TreeGen
  156. 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
  157. def scalaAnyRefConstr: Select

    Definition Classes
    TreeGen
  158. def scalaDot(name: Name): Select

    Definition Classes
    TreeGen
  159. def scalaFunctionConstr(argtpes: List[Tree], restpe: Tree, abstractFun: Boolean = false): Tree

    Definition Classes
    TreeGen
  160. def scalaScalaObjectConstr: Select

    Definition Classes
    TreeGen
  161. def scalaUnitConstr: Select

    Definition Classes
    TreeGen
  162. def serializableConstr: Select

    Definition Classes
    TreeGen
  163. def show(tree: Tree, mkPrinter: (PrintWriter) ⇒ Forest.TreePrinter = newTreePrinter): String

    Definition Classes
    TreePrinters
  164. final val showOuterTests: Boolean(false)

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

    Definition Classes
    TreePrinters
  166. def singleType(pre: Type, sym: Symbol): Type

    The canonical creator for single-types

    The canonical creator for single-types

    Definition Classes
    Types
  167. lazy val sn: SymbolNames

    Definition Classes
    StdNames
  168. implicit def stringToTermName(s: String): TermName

    Definition Classes
    StdNames
  169. final def synchronized[T0](arg0: ⇒ T0): T0

    Definition Classes
    AnyRef
  170. def toString(): String

    Definition Classes
    AnyRef → Any
  171. object tpnme extends Forest.TypeNames with Forest.TypeNameMangling

    Definition Classes
    StdNames
  172. val treeCopy: TreeCopier

    Definition Classes
    Trees
  173. def treeToString(args: Any*): String

    Definition Classes
    TreePrinters
  174. object treehuggerDSL

    Definition Classes
    TreehuggerDSLs
  175. def typeRef(pre: Type, sym: Symbol, args: Type*): Type

    Definition Classes
    Types
  176. def typeRef(pre: Type, sym: Symbol, args: List[Type]): Type

    Definition Classes
    Types
  177. def typeRef(sym: Symbol): Type

    Definition Classes
    Types
  178. final def wait(): Unit

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

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

    Definition Classes
    AnyRef
    Annotations
    @throws( ... )
  181. def xprintTree(treePrinter: TreePrinter, tree: Tree): Unit

    Hook for extensions

    Hook for extensions

    Definition Classes
    TreePrinters
  182. def xtraverse(traverser: Traverser, tree: Tree): Unit

    Attributes
    protected
    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