Dotty Documentation

0.9.0-bin-SNAPSHOT

abstract class Instance [ T ]
extends DotClass

[-] Constructors

Instance ( )

[-] Members

[+] class DeepFolder

Fold f over all tree nodes, in depth-first, prefix order

[+] class ShallowFolder

Fold f over all tree nodes, in depth-first, prefix order, but don't visit subtrees where f returns a different result for the root, i.e. f(x, root) ne x.

[+] abstract class TreeAccumulator
[+] abstract class TreeCopier

A class for copying trees. The copy methods avoid creating a new tree If all arguments stay the same.

Note: Some of the copy methods take a context. These are exactly those methods that are overridden in TypedTreeCopier so that they selectively retype themselves. Retyping needs a context.

[+] abstract class TreeMap
[+] object TreeMap
[+] abstract class TreeTraverser
[+] type Alternative = Alternative [ T ]
[+] type AndTypeTree = AndTypeTree [ T ]
[+] type Annotated = Annotated [ T ]
[+] type AppliedTypeTree = AppliedTypeTree [ T ]
[+] type Apply = Apply [ T ]
[+] type Assign = Assign [ T ]
[+] type BackquotedIdent = BackquotedIdent [ T ]
[+] type Bind = Bind [ T ]
[+] type Block = Block [ T ]
[+] type ByNameTypeTree = ByNameTypeTree [ T ]
[+] type CaseDef = CaseDef [ T ]
[+] type Closure = Closure [ T ]
[+] type DefDef = DefDef [ T ]
[+] type DefTree = DefTree [ T ]
[+] type DenotingTree = DenotingTree [ T ]
[+] type Ident = Ident [ T ]
[+] type If = If [ T ]
[+] type Import = Import [ T ]
[+] type Inlined = Inlined [ T ]
[+] type JavaSeqLiteral = JavaSeqLiteral [ T ]
[+] type LambdaTypeTree = LambdaTypeTree [ T ]
[+] type Literal = Literal [ T ]
[+] type Match = Match [ T ]
[+] type MemberDef = MemberDef [ T ]
[+] type NameTree = NameTree [ T ]
[+] type NamedArg = NamedArg [ T ]
[+] type New = New [ T ]
[+] type OrTypeTree = OrTypeTree [ T ]
[+] type PackageDef = PackageDef [ T ]
[+] type PatternTree = PatternTree [ T ]
[+] type ProxyTree = ProxyTree [ T ]
[+] type RefTree = RefTree [ T ]
[+] type RefinedTypeTree = RefinedTypeTree [ T ]
[+] type Return = Return [ T ]
[+] type SearchFailureIdent = SearchFailureIdent [ T ]
[+] type Select = Select [ T ]
[+] type SelectWithSig = SelectWithSig [ T ]
[+] type SeqLiteral = SeqLiteral [ T ]
[+] type SingletonTypeTree = SingletonTypeTree [ T ]
[+] type Super = Super [ T ]
[+] type Template = Template [ T ]
[+] type TermTree = TermTree [ T ]
[+] type Thicket = Thicket [ T ]
[+] type This = This [ T ]
[+] type Tree = Tree [ T ]
[+] type Try = Try [ T ]
[+] type TypTree = TypTree [ T ]
[+] type TypeApply = TypeApply [ T ]
[+] type TypeBoundsTree = TypeBoundsTree [ T ]
[+] type TypeDef = TypeDef [ T ]
[+] type TypeTree = TypeTree [ T ]
[+] type Typed = Typed [ T ]
[+] type UnApply = UnApply [ T ]
[+] type ValDef = ValDef [ T ]
[+] type ValOrDefDef = ValOrDefDef [ T ]
[+] @sharable val EmptyTree : Thicket
[+] @sharable val EmptyValDef : ValDef
[+] val cpy : TreeCopier
[+] def Thicket ( trees: List [ Tree ] ) : Thicket
[+] def Thicket ( ) : Thicket
[+] def Thicket ( x1: Tree , x2: Tree ) : Thicket
[+] def Thicket ( x1: Tree , x2: Tree , x3: Tree ) : Thicket
[+] def flatTree ( xs: List [ Tree ] ) : Tree
[+] protected def inlineContext ( call: Tree ) ( implicit ctx: Context ) : Context

For untyped trees, this is just the identity. For typed trees, a context derived form ctx that records call as the innermost enclosing call for which the inlined version is currently processed.

[+] def rename ( tree: NameTree , newName: Name ) ( implicit ctx: Context ) : ThisTree [ T ]
[+] protected def skipTransform ( tree: Tree ) ( implicit ctx: Context ) : Boolean

Hook to indicate that a transform of some subtree should be skipped