W3cubDocs

/Scala 2.13 Reflection

Trait scala.reflect.api.Trees.TreeApi

trait TreeApi extends Product

The API that all trees support. The main source of information about trees is the scala.reflect.api.Trees page.

Self Type
Universe.Tree
Source
Trees.scala
Linear Supertypes
Product, Equals, AnyRef, Any
Known Subclasses
ReferenceToBoxed, ReferenceToBoxedApi, Alternative, AlternativeApi, Annotated, AnnotatedApi, AppliedTypeTree, AppliedTypeTreeApi, Apply, ApplyApi, Assign, AssignApi, Bind, BindApi, Block, BlockApi, CaseDef, CaseDefApi, ClassDef, ClassDefApi, CompoundTypeTree, CompoundTypeTreeApi, DefDef, DefDefApi, DefTree, DefTreeApi, ExistentialTypeTree, ExistentialTypeTreeApi, Function, FunctionApi, GenericApply, GenericApplyApi, Ident, IdentApi, If, IfApi, ImplDef, ImplDefApi, Import, ImportApi, LabelDef, LabelDefApi, Literal, LiteralApi, Match, MatchApi, MemberDef, MemberDefApi, ModuleDef, ModuleDefApi, NameTree, NameTreeApi, NamedArg, NamedArgApi, New, NewApi, PackageDef, PackageDefApi, RefTree, RefTreeApi, Return, ReturnApi, Select, SelectApi, SelectFromTypeTree, SelectFromTypeTreeApi, SingletonTypeTree, SingletonTypeTreeApi, Star, StarApi, Super, SuperApi, SymTree, SymTreeApi, Template, TemplateApi, TermTree, TermTreeApi, This, ThisApi, Throw, ThrowApi, Tree, Try, TryApi, TypTree, TypTreeApi, TypeApply, TypeApplyApi, TypeBoundsTree, TypeBoundsTreeApi, TypeDef, TypeDefApi, TypeTree, TypeTreeApi, Typed, TypedApi, UnApply, UnApplyApi, ValDef, ValDefApi, ValOrDefDef, ValOrDefDefApi

Abstract Value Members

abstract def canEqual(that: Any): Boolean

Definition Classes
Equals

abstract def canHaveAttrs: Boolean

Can this tree carry attributes (i.e. symbols, types or positions)? Typically the answer is yes, except for the EmptyTree null object and two special singletons: noSelfType and pendingSuperCall.

abstract def children: List[Universe.Tree]

The direct child trees of this tree. EmptyTrees are always omitted. Lists are flattened.

abstract def collect[T](pf: PartialFunction[Universe.Tree, T]): List[T]

abstract def duplicate: TreeApi.this.type

abstract def equalsStructure(that: Universe.Tree): Boolean

Tests whether two trees are structurally equal. Note that == on trees is reference equality.

abstract def exists(p: (Universe.Tree) => Boolean): Boolean

abstract def filter(f: (Universe.Tree) => Boolean): List[Universe.Tree]

Find all subtrees matching predicate p. Same as withFilter

abstract def find(p: (Universe.Tree) => Boolean): Option[Universe.Tree]

abstract def forAll(p: (Universe.Tree) => Boolean): Boolean

abstract def foreach(f: (Universe.Tree) => Unit): Unit

abstract def isDef: Boolean

abstract def isEmpty: Boolean

Is this tree one of the empty trees?

Empty trees are: the EmptyTree null object and TypeTree instances that don't carry a type.

See also

canHaveAttrs

abstract def isTerm: Boolean

abstract def isType: Boolean

abstract def nonEmpty: Boolean

Is this tree not an empty tree?

See also

isEmpty

abstract def orElse(alt: => Universe.Tree): Universe.Tree

Provides an alternate if tree is empty

alt

The alternate tree

returns

If this tree is non empty, this tree, otherwise alt.

abstract def pos: Universe.Position

abstract def productArity: Int

Definition Classes
Product

abstract def productElement(n: Int): Any

Definition Classes
Product

abstract def symbol: Universe.Symbol

Symbol of the tree.

For most trees symbol is null. In SymTrees, it is overridden and implemented with a var, initialized to NoSymbol.

Trees which are not SymTrees but which carry symbols do so by overriding def symbol to forward it elsewhere. Examples:

    Super(qual, _) has qual's symbol, Apply(fun, args) has fun's symbol, TypeApply(fun, args) has fun's symbol, AppliedTypeTree(tpt, args) has tpt's symbol, TypeTree(tpe) has tpe's typeSymbol, if tpe != null.

abstract def tpe: Universe.Type

Type of the tree.

Upon creation most trees have their tpe set to null. Types are typically assigned to trees during typechecking. Some node factory methods set tpe immediately after creation.

When the typechecker encounters a tree with a non-null tpe, it will assume it to be correct and not check it again. This means one has to be careful not to erase the tpe field of subtrees.

abstract def withFilter(f: (Universe.Tree) => Boolean): List[Universe.Tree]

Find all subtrees matching predicate p. Same as filter

Concrete Value Members

final def !=(arg0: Any): Boolean

Definition Classes
AnyRef → Any

final def ##(): Int

Definition Classes
AnyRef → Any

def +(other: String): String

Implicit
This member is added by an implicit conversion from Universe.TreeApi toany2stringadd[Universe.TreeApi] performed by method any2stringadd in scala.Predef.
Definition Classes
any2stringadd

def ->[B](y: B): (Universe.TreeApi, B)

Implicit
This member is added by an implicit conversion from Universe.TreeApi toArrowAssoc[Universe.TreeApi] performed by method ArrowAssoc in scala.Predef.
Definition Classes
ArrowAssoc
Annotations
@inline()

final def ==(arg0: Any): Boolean

Definition Classes
AnyRef → Any

final def asInstanceOf[T0]: T0

Definition Classes
Any

def clone(): AnyRef

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

def ensuring(cond: (Universe.TreeApi) => Boolean, msg: => Any): Universe.TreeApi

Implicit
This member is added by an implicit conversion from Universe.TreeApi toEnsuring[Universe.TreeApi] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: (Universe.TreeApi) => Boolean): Universe.TreeApi

Implicit
This member is added by an implicit conversion from Universe.TreeApi toEnsuring[Universe.TreeApi] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean, msg: => Any): Universe.TreeApi

Implicit
This member is added by an implicit conversion from Universe.TreeApi toEnsuring[Universe.TreeApi] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring

def ensuring(cond: Boolean): Universe.TreeApi

Implicit
This member is added by an implicit conversion from Universe.TreeApi toEnsuring[Universe.TreeApi] performed by method Ensuring in scala.Predef.
Definition Classes
Ensuring

final def eq(arg0: AnyRef): Boolean

Definition Classes
AnyRef

def equals(arg0: AnyRef): Boolean

Definition Classes
AnyRef → Any

def finalize(): Unit

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

def formatted(fmtstr: String): String

Implicit
This member is added by an implicit conversion from Universe.TreeApi toStringFormat[Universe.TreeApi] performed by method StringFormat in scala.Predef.
Definition Classes
StringFormat
Annotations
@inline()

final def getClass(): Class[_ <: AnyRef]

Definition Classes
AnyRef → Any
Annotations
@native()

def hashCode(): Int

Definition Classes
AnyRef → Any
Annotations
@native()

final def isInstanceOf[T0]: Boolean

Definition Classes
Any

final def ne(arg0: AnyRef): Boolean

Definition Classes
AnyRef

final def notify(): Unit

Definition Classes
AnyRef
Annotations
@native()

final def notifyAll(): Unit

Definition Classes
AnyRef
Annotations
@native()

def productElementName(n: Int): String

Definition Classes
Product

def productElementNames: Iterator[String]

Definition Classes
Product

def productIterator: Iterator[Any]

Definition Classes
Product

def productPrefix: String

Definition Classes
Product

final def synchronized[T0](arg0: => T0): T0

Definition Classes
AnyRef

def toString(): String

Obtains string representation of a tree

Definition Classes
TreeApi → AnyRef → Any

final def wait(): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

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

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException])

final def wait(arg0: Long): Unit

Definition Classes
AnyRef
Annotations
@throws(classOf[java.lang.InterruptedException]) @native()

© 2002-2019 EPFL, with contributions from Lightbend.
Licensed under the Apache License, Version 2.0.
https://www.scala-lang.org/api/2.13.0/scala-reflect/scala/reflect/api/Trees$TreeApi.html