trait BlockApi extends Universe.TermTreeApi
The API that all blocks support
- Self Type
- Universe.Block
- Source
- Trees.scala
- Alphabetic
- By Inheritance
- BlockApi
- TermTreeApi
- TreeApi
- Product
- Equals
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- Protected
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
.- Definition Classes
- TreeApi
- 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.
- Definition Classes
- TreeApi
- 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.Apply
pf
to each subtree on which the function is defined and collect the results.- Definition Classes
- TreeApi
- abstract def duplicate: BlockApi.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).
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).
- Definition Classes
- TreeApi
- 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.- Definition Classes
- TreeApi
- abstract def exists(p: (Universe.Tree) => Boolean): Boolean
Is there exists a part of this tree which satisfies predicate
p
?Is there exists a part of this tree which satisfies predicate
p
?- Definition Classes
- TreeApi
- abstract def expr: Universe.Tree
The last expression in the block.
- abstract def filter(f: (Universe.Tree) => Boolean): List[Universe.Tree]
Find all subtrees matching predicate
p
.Find all subtrees matching predicate
p
. Same aswithFilter
- Definition Classes
- TreeApi
- 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.Returns optionally first tree (in a preorder traversal) which satisfies predicate
p
, or None if none exists.- Definition Classes
- TreeApi
- abstract def forAll(p: (Universe.Tree) => Boolean): Boolean
Do all parts of this tree satisfy predicate
p
?Do all parts of this tree satisfy predicate
p
?- Definition Classes
- TreeApi
- abstract def foreach(f: (Universe.Tree) => Unit): Unit
Apply
f
to each subtreeApply
f
to each subtree- Definition Classes
- TreeApi
- abstract def isDef: Boolean
Does this tree represent a definition? (of a method, of a class, etc)
Does this tree represent a definition? (of a method, of a class, etc)
- Definition Classes
- TreeApi
- 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.- Definition Classes
- TreeApi
- See also
canHaveAttrs
- abstract def isTerm: Boolean
The canonical way to test if a Tree represents a term.
The canonical way to test if a Tree represents a term.
- Definition Classes
- TreeApi
- abstract def isType: Boolean
The canonical way to test if a Tree represents a type.
The canonical way to test if a Tree represents a type.
- Definition Classes
- TreeApi
- abstract def nonEmpty: Boolean
Is this tree not an empty tree?
Is this tree not an empty tree?
- Definition Classes
- TreeApi
- 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
.
- Definition Classes
- TreeApi
- abstract def pos: Universe.Position
Position of the tree.
Position of the tree.
- Definition Classes
- TreeApi
- abstract def productArity: Int
- Definition Classes
- Product
- abstract def productElement(n: Int): Any
- Definition Classes
- Product
- abstract def stats: List[Universe.Tree]
All, but the last, expressions in the block.
All, but the last, expressions in the block. Can very well be an empty list.
- 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
.
- Definition Classes
- TreeApi
- 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.- Definition Classes
- TreeApi
- abstract def withFilter(f: (Universe.Tree) => Boolean): List[Universe.Tree]
Find all subtrees matching predicate
p
.Find all subtrees matching predicate
p
. Same asfilter
- Definition Classes
- TreeApi
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.BlockApi toany2stringadd[Universe.BlockApi] performed by method any2stringadd in scala.Predef.
- Definition Classes
- any2stringadd
- def ->[B](y: B): (Universe.BlockApi, B)
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toArrowAssoc[Universe.BlockApi] 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(classOf[java.lang.CloneNotSupportedException]) @native()
- def ensuring(cond: (Universe.BlockApi) => Boolean, msg: => Any): Universe.BlockApi
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toEnsuring[Universe.BlockApi] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: (Universe.BlockApi) => Boolean): Universe.BlockApi
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toEnsuring[Universe.BlockApi] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean, msg: => Any): Universe.BlockApi
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toEnsuring[Universe.BlockApi] performed by method Ensuring in scala.Predef.
- Definition Classes
- Ensuring
- def ensuring(cond: Boolean): Universe.BlockApi
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toEnsuring[Universe.BlockApi] 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[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- 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
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()
Deprecated Value Members
- def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toStringFormat[Universe.BlockApi] 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.
- def →[B](y: B): (Universe.BlockApi, B)
- Implicit
- This member is added by an implicit conversion from Universe.BlockApi toArrowAssoc[Universe.BlockApi] performed by method ArrowAssoc in scala.Predef.
- Definition Classes
- ArrowAssoc
- Annotations
- @deprecated
- Deprecated
(Since version 2.13.0) Use
->
instead. If you still wish to display it as one character, consider using a font with programming ligatures such as Fira Code.