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
- Alphabetic
- By Inheritance
- TreeApi
- Product
- Equals
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
canEqual(that: Any): Boolean
- Definition Classes
- Equals
-
abstract
def
canHaveAttrs: Boolean
Can this tree carry attributes (i.e.
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
andpendingSuperCall
. -
abstract
def
children: List[Universe.Tree]
The direct child trees of this 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]
Apply
pf
to each subtree on which the function is defined and collect the results. -
abstract
def
duplicate: TreeApi.this.type
Make a copy of this tree, keeping all attributes, except that all positions are focused (so nothing in this tree will be found when searching by position).
-
abstract
def
equalsStructure(that: Universe.Tree): Boolean
Tests whether two trees are structurally equal.
Tests whether two trees are structurally equal. Note that
==
on trees is reference equality. -
abstract
def
exists(p: (Universe.Tree) ⇒ Boolean): Boolean
Is there exists a part of this tree which satisfies predicate
p
? -
abstract
def
filter(f: (Universe.Tree) ⇒ Boolean): List[Universe.Tree]
Find all subtrees matching predicate
p
.Find all subtrees matching predicate
p
. Same aswithFilter
-
abstract
def
find(p: (Universe.Tree) ⇒ Boolean): Option[Universe.Tree]
Returns optionally first tree (in a preorder traversal) which satisfies predicate
p
, or None if none exists. -
abstract
def
forAll(p: (Universe.Tree) ⇒ Boolean): Boolean
Do all parts of this tree satisfy predicate
p
? -
abstract
def
foreach(f: (Universe.Tree) ⇒ Unit): Unit
Apply
f
to each subtree -
abstract
def
isDef: Boolean
Does this tree represent a definition? (of a method, of a class, etc)
-
abstract
def
isEmpty: Boolean
Is this tree one of the empty trees?
Is this tree one of the empty trees?
Empty trees are: the
EmptyTree
null object andTypeTree
instances that don't carry a type.- See also
canHaveAttrs
-
abstract
def
isTerm: Boolean
The canonical way to test if a Tree represents a term.
-
abstract
def
isType: Boolean
The canonical way to test if a Tree represents a type.
-
abstract
def
nonEmpty: Boolean
Is this tree not an empty tree?
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
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
Position of the tree.
-
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.
Symbol of the tree.
For most trees symbol is
null
. InSymTree
s, it is overridden and implemented with a var, initialized toNoSymbol
.Trees which are not
SymTree
s but which carry symbols do so by overridingdef symbol
to forward it elsewhere. Examples:Super(qual, _)
hasqual
's symbol,Apply(fun, args)
hasfun
's symbol,TypeApply(fun, args)
hasfun
's symbol,AppliedTypeTree(tpt, args)
hastpt
's symbol,TypeTree(tpe)
hastpe
'stypeSymbol
, iftpe != null
.
-
abstract
def
tpe: Universe.Type
Type of the tree.
Type of the tree.
Upon creation most trees have their
tpe
set tonull
. Types are typically assigned to trees during typechecking. Some node factory methods settpe
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
.Find all subtrees matching predicate
p
. Same asfilter
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 to any2stringadd[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 to ArrowAssoc[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[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
ensuring(cond: (Universe.TreeApi) ⇒ Boolean, msg: ⇒ Any): Universe.TreeApi
- Implicit
- This member is added by an implicit conversion from Universe.TreeApi to Ensuring[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 to Ensuring[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 to Ensuring[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 to Ensuring[Universe.TreeApi] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
final
def
getClass(): Class[_]
- 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
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
Obtains string representation of a tree
- Definition Classes
- TreeApi → AnyRef → Any
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
def
→[B](y: B): (Universe.TreeApi, B)
- Implicit
- This member is added by an implicit conversion from Universe.TreeApi to ArrowAssoc[Universe.TreeApi] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
Deprecated Value Members
-
def
formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Universe.TreeApi to StringFormat[Universe.TreeApi] performed by method StringFormat in scala.Predef.
- Definition Classes
- StringFormat
- Annotations
- @deprecated @inline()
- Deprecated
(Since version 2.12.16) Use
formatString.format(value)
instead ofvalue.formatted(formatString)
, or use thef""
string interpolator. In Java 15 and later,formatted
resolves to the new method in String which has reversed parameters.