Try to convert Select(qual, name) to a SelectFromTypeTree.
Translate names in Select/Ident nodes to type names.
Used in situations where you need to access value of an expression several times
Creates a tree representing new Object { stats }.
Creates a tree representing new Object { stats }. To make sure an anonymous subclass of Object is created, if there are no stats, a () is added.
Cast tree
to type pt
by creating
one of the calls of the form
Cast tree
to type pt
by creating
one of the calls of the form
x.asInstanceOf[pt
] up to phase uncurry
x.asInstanceOf[pt
]() if after uncurry but before erasure
x.$asInstanceOf[pt
]() if at or after erasure
Generate a cast for tree Tree representing Array with elem type elemtp to expected type pt.
Make forwarder to method target
, passing all parameters in params
Builds a fully attributed, synthetic import node.
Builds a fully attributed, synthetic import node.
import qualSym
.{name
=> toName
}
A creator for a call to a scala.reflect.Manifest or ClassManifest factory method.
A creator for a call to a scala.reflect.Manifest or ClassManifest factory method.
full or partial manifest (target will be Manifest or ClassManifest)
name of the factory method (e.g. "classType")
the type argument
value arguments
the tree
Create a method based on a Function
Create a method based on a Function
Used both to under -Ydelambdafy:method
create a lifted function and
under -Ydelamdafy:inline
to create the apply method on the anonymous
class.
It creates a method definition with value params cloned from the original lambda. Then it calls a supplied function to create the body and types the result. Finally everything is wrapped up in a DefDef
The owner for the new method
name for the new method
flags to be put on the method in addition to FINAL
Make a synchronized block on 'monitor'.
Return the synchronized part of the double-checked locking idiom around the syncBody tree.
Return the synchronized part of the double-checked locking idiom around the syncBody tree. It guards with cond
and
synchronizez on clazz.this
. Additional statements can be included after initialization,
(outside the synchronized block).
The idiom works only if the condition is using a volatile field.
http://www.cs.umd.edu/~pugh/java/memoryModel/DoubleCheckedLocking.html
Builds a fully attributed, synthetic wildcard import node.
Applies a wrapArray call to an array, making it a WrappedArray.
Applies a wrapArray call to an array, making it a WrappedArray. Don't let a reference type parameter be inferred, in case it's a singleton: apply the element type directly.
XXX to resolve: TreeGen only assumes global is a SymbolTable, but TreeDSL at the moment expects a Global. Can we get by with SymbolTable?