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. 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.
- Alphabetic
- By Inheritance
- ApplyDynamic
- Serializable
- Serializable
- SymTree
- TermTree
- Tree
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Instance Constructors
- new ApplyDynamic(qual: Universe.Tree, args: List[Universe.Tree])
Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- val args: List[Universe.Tree]
-
final
def
asInstanceOf[T0]: T0
- Definition Classes
- Any
-
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
- Tree
-
def
clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
def
defineType(tp: Universe.Type): ApplyDynamic.this.type
Like
setType
, but if this is a previously empty TypeTree that fact is remembered so that resetAllAttrs will snap back.Like
setType
, but if this is a previously empty TypeTree that fact is remembered so that resetAllAttrs will snap back.Attempting to elaborate on the above, I find: If defineType is called on a TypeTree whose type field is null or NoType, this is recorded as "wasEmpty = true". That value is used in ResetAttrsTraverser, which nulls out the type field of TypeTrees for which wasEmpty is true, leaving the others alone.
resetAllAttrs is used in situations where some speculative typing of a tree takes place, fails, and the tree needs to be returned to its former state to try again. So according to me: using
defineType
instead ofsetType
is how you communicate that the type being set does not depend on any previous state, and therefore should be abandoned if the current line of type inquiry doesn't work out.- Definition Classes
- Tree
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(that: Any): Boolean
- Definition Classes
- Tree → Equals → AnyRef → Any
-
def
equalsStructure(that: Universe.Tree): Boolean
- Definition Classes
- Tree
-
def
equalsStructure0(that: Universe.Tree)(f: (Universe.Tree, Universe.Tree) ⇒ Boolean): Boolean
- Definition Classes
- Tree
-
def
exists(p: (Universe.Tree) ⇒ Boolean): Boolean
Is there part of this tree which satisfies predicate
p
?Is there part of this tree which satisfies predicate
p
?- Definition Classes
- Tree
-
def
filter(f: (Universe.Tree) ⇒ Boolean): List[Universe.Tree]
Find all subtrees matching predicate
p
Find all subtrees matching predicate
p
- Definition Classes
- Tree
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
-
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
- Tree
-
def
foreach(f: (Universe.Tree) ⇒ Unit): Unit
Apply
f
to each subtreeApply
f
to each subtree- Definition Classes
- Tree
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- def hasSymbol: Boolean
-
def
hasSymbolWhich(f: (Universe.Symbol) ⇒ Boolean): Boolean
- Definition Classes
- Tree
-
def
hashCode(): Int
- Definition Classes
- Tree → AnyRef → Any
-
val
id: Int
- Definition Classes
- Tree
-
def
isDef: Boolean
- Definition Classes
- Tree
-
def
isEmpty: Boolean
- Definition Classes
- Tree
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
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
- Tree
-
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
- Tree
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
-
def
pos: Position
- Definition Classes
- Tree
-
def
pos_=(pos: Position): Unit
- Definition Classes
- Tree
- val qual: Universe.Tree
-
def
setPos(pos: Position): ApplyDynamic.this.type
- Definition Classes
- Tree
-
def
setSymbol(sym: Universe.Symbol): ApplyDynamic.this.type
- Definition Classes
- Tree
-
def
setType(tp: Universe.Type): ApplyDynamic.this.type
Set tpe to give
tp
and return this.Set tpe to give
tp
and return this.- Definition Classes
- Tree
-
val
symbol: Universe.Symbol
Note that symbol is fixed as null at this level.
Note that symbol is fixed as null at this level. 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
Attempting to set the symbol of a Tree which does not support it will induce an exception.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
tpe: Universe.Type
- Definition Classes
- Tree
-
def
tpe_=(t: Universe.Type): Unit
- Definition Classes
- Tree
-
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( ... )