abstract class TreeGen extends reflect.internal.TreeGen with TreeDSL
XXX to resolve: TreeGen only assumes global is a SymbolTable, but TreeDSL at the moment expects a Global. Can we get by with SymbolTable?
- Source
- TreeGen.scala
- Alphabetic
- By Inheritance
- TreeGen
- TreeDSL
- TreeGen
- AnyRef
- Any
- by any2stringadd
- by StringFormat
- by Ensuring
- by ArrowAssoc
- Hide All
- Show All
- Public
- All
Instance Constructors
- new TreeGen()
Type Members
-
class
GetVarTraverser extends reflect.internal.SymbolTable.Traverser
- Definition Classes
- TreeGen
Concrete Value Members
-
object
CODE
- Definition Classes
- TreeDSL
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
- def +(other: String): String
- def ->[B](y: B): (TreeGen, B)
-
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( ... )
-
def
convertToSelectFromType(qual: Global.Tree, origName: Global.Name): Global.Tree with Serializable
Try to convert Select(qual, name) to a SelectFromTypeTree.
-
def
convertToTypeName(tree: Global.Tree): Option[Global.RefTree]
Translate names in Select/Ident nodes to type names.
- def ensuring(cond: (TreeGen) ⇒ Boolean, msg: ⇒ Any): TreeGen
- def ensuring(cond: (TreeGen) ⇒ Boolean): TreeGen
- def ensuring(cond: Boolean, msg: ⇒ Any): TreeGen
- def ensuring(cond: Boolean): TreeGen
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
def
evalOnce(expr: Global.Tree, owner: Global.Symbol, unit: Global.CompilationUnit)(within: (() ⇒ Global.Tree) ⇒ Global.Tree): Global.Tree
Used in situations where you need to access value of an expression several times
- def evalOnceAll(exprs: List[Global.Tree], owner: Global.Symbol, unit: Global.CompilationUnit)(within: (List[() ⇒ Global.Tree]) ⇒ Global.Tree): Global.Tree
- def expandFunction(localTyper: (analyzer)#Typer)(fun: Global.Function, inConstructorFlag: Long): Global.Tree
-
def
finalize(): Unit
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( classOf[java.lang.Throwable] )
- def formatted(fmtstr: String): String
-
final
def
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
maybeMkAsInstanceOf(tree: Global.Tree, pt: Global.Type, tpe: Global.Type, beforeRefChecks: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAnd(tree1: Global.Tree, tree2: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAnonymousNew(stats: List[Global.Tree]): Global.Tree
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.
- def mkAppliedTypeForCase(clazz: Global.Symbol): Global.Tree
-
def
mkAppliedTypeTree(fun: Global.Tree, targs: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkApplyIfNeeded(qual: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAsInstanceOf(value: Global.Tree, tpe: Global.Type, any: Boolean, wrapInApply: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAssign(lhs: Global.Tree, rhs: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
- def mkAssignAndReturn(lhs: Global.Symbol, rhs: Global.Tree): Global.Tree
-
def
mkAttributedIdent(sym: Global.Symbol): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkAttributedQualifier(tpe: Global.Type, termSym: Global.Symbol): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAttributedQualifier(tpe: Global.Type): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAttributedQualifierIfPossible(prefix: Global.Type): Option[Global.Tree]
- Definition Classes
- TreeGen
-
def
mkAttributedRef(sym: Global.Symbol): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkAttributedRef(pre: Global.Type, sym: Global.Symbol): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkAttributedSelect(qual: Global.Tree, sym: Global.Symbol): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkAttributedStableRef(sym: Global.Symbol): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAttributedStableRef(pre: Global.Type, sym: Global.Symbol): Global.Tree
- Definition Classes
- TreeGen
-
def
mkAttributedThis(sym: Global.Symbol): Global.This
- Definition Classes
- TreeGen
-
def
mkAttributedTypeApply(target: Global.Tree, method: Global.Symbol, targs: List[Global.Type]): Global.Tree
- Definition Classes
- TreeGen
- def mkBindForCase(patVar: Global.Symbol, clazz: Global.Symbol, targs: List[Global.Type]): Global.Tree
-
def
mkBlock(stats: List[Global.Tree], doFlatten: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
mkCast(tree: Global.Tree, pt: Global.Type): Global.Tree
Cast
tree
to typept
by creating one of the calls of the formCast
tree
to typept
by creating one of the calls of the formx.asInstanceOf[
pt
] up to phase uncurry x.asInstanceOf[pt
]() if after uncurry but before erasure x.$asInstanceOf[pt
]() if at or after erasure- Definition Classes
- TreeGen → TreeGen
-
def
mkCastArray(tree: Global.Tree, elemtp: Global.Type, pt: Global.Type): Global.Tree
Generate a cast for tree Tree representing Array with elem type elemtp to expected type pt.
- def mkCastPreservingAnnotations(tree: Global.Tree, pt: Global.Type): Global.Typed
-
def
mkCheckIfRefutable(pat: Global.Tree, rhs: Global.Tree)(implicit fresh: FreshNameCreator): Global.Tree
- Definition Classes
- TreeGen
-
def
mkClassDef(mods: Global.Modifiers, name: Global.TypeName, tparams: List[Global.TypeDef], templ: Global.Template): Global.ClassDef
- Definition Classes
- TreeGen
-
def
mkClassOf(tp: Global.Type): Global.Tree
- Definition Classes
- TreeGen
-
def
mkConstantZero(tp: Global.Type): Global.Constant
- Definition Classes
- TreeGen
-
def
mkFor(enums: List[Global.Tree], sugarBody: Global.Tree)(implicit fresh: FreshNameCreator): Global.Tree
- Definition Classes
- TreeGen
-
def
mkForwarder(target: Global.Tree, vparamss: List[List[Global.Symbol]]): Global.Tree
Make forwarder to method
target
, passing all parameters inparams
-
def
mkFunctionTypeTree(argtpes: List[Global.Tree], restpe: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkGenerator(pos: Global.Position, pat: Global.Tree, valeq: Boolean, rhs: Global.Tree)(implicit fresh: FreshNameCreator): Global.Tree
- Definition Classes
- TreeGen
-
def
mkImport(qualSym: Global.Symbol, name: Global.Name, toName: Global.Name): Global.Import
Builds a fully attributed, synthetic import node.
Builds a fully attributed, synthetic import node. import
qualSym
.{name
=>toName
} -
def
mkIsInstanceOf(value: Global.Tree, tpe: Global.Type, any: Boolean, wrapInApply: Boolean): Global.Tree
- Definition Classes
- TreeGen
- def mkLiftedFunctionBodyMethod(localTyper: (analyzer)#Typer)(owner: Global.Symbol, fun: Global.Function): Global.DefDef
-
def
mkLiteralUnit: Global.Literal
- Definition Classes
- TreeGen
-
def
mkManifestFactoryCall(full: Boolean, constructor: String, tparg: Global.Type, args: List[Global.Tree]): Global.Tree
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
full or partial manifest (target will be Manifest or ClassManifest)
- constructor
name of the factory method (e.g. "classType")
- tparg
the type argument
- args
value arguments
- returns
the tree
-
def
mkMethodCall(target: Global.Tree, targs: List[Global.Type], args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(receiver: Global.Tree, method: Global.Symbol, targs: List[Global.Type], args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(receiver: Global.Symbol, methodName: Global.Name, args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(target: Global.Tree, args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(method: Global.Symbol, args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(method: Global.Symbol, targs: List[Global.Type], args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkMethodCall(receiver: Global.Symbol, methodName: Global.Name, targs: List[Global.Type], args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
- def mkMethodFromFunction(localTyper: (analyzer)#Typer)(owner: Global.Symbol, fun: Global.Function): Global.DefDef
-
def
mkNamedArg(lhs: Global.Tree, rhs: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkNamedArg(name: Global.Name, tree: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkNew(parents: List[Global.Tree], self: Global.ValDef, stats: List[Global.Tree], npos: Global.Position, cpos: Global.Position): Global.Tree
- Definition Classes
- TreeGen
-
def
mkNil: Global.Tree
- Definition Classes
- TreeGen
-
def
mkNullaryCall(method: Global.Symbol, targs: List[Global.Type]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkOr(tree1: Global.Tree, tree2: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkPackageObject(defn: Global.ModuleDef, pidPos: Global.Position, pkgPos: Global.Position): Global.PackageDef
- Definition Classes
- TreeGen
-
def
mkParents(ownerMods: Global.Modifiers, parents: List[Global.Tree], parentPos: Global.Position): collection.immutable.List[Global.Tree]
- Definition Classes
- TreeGen
-
def
mkPatDef(mods: Global.Modifiers, pat: Global.Tree, rhs: Global.Tree)(implicit fresh: FreshNameCreator): List[Global.ValDef]
- Definition Classes
- TreeGen
-
def
mkPatDef(pat: Global.Tree, rhs: Global.Tree)(implicit fresh: FreshNameCreator): List[Global.ValDef]
- Definition Classes
- TreeGen
- def mkRuntimeCall(meth: Global.Name, targs: List[Global.Type], args: List[Global.Tree]): Global.Tree
- def mkRuntimeCall(meth: Global.Name, args: List[Global.Tree]): Global.Tree
-
def
mkRuntimeUniverseRef: Global.Tree
- Definition Classes
- TreeGen
-
def
mkSeqApply(arg: Global.Tree): Global.Apply
- Definition Classes
- TreeGen
- def mkSoftRef(expr: Global.Tree): Global.Tree
-
final
def
mkStatic(orig: Global.DefDef, newName: Global.Name, maybeClone: (Global.Symbol) ⇒ Global.Symbol): Global.DefDef
Create a new
DefDef
based onorig
with an explicit self parameter.Create a new
DefDef
based onorig
with an explicit self parameter.Details:
- Must by run after erasure
- If
maybeClone
is the identity function, this runs "in place" and mutates the symbol oforig
.orig
should be discarded - Symbol owners and returns are substituted, as are parameter symbols
- Recursive calls are not rewritten. This is correct if we assume
that we either:
- are in "in-place" mode, but can guarantee that no recursive calls exists
- are associating the RHS with a cloned symbol, but intend for the original method to remain and for recursive calls to target it.
-
def
mkSuperInitCall: Global.Select
- Definition Classes
- TreeGen
-
def
mkSynchronized(monitor: Global.Tree)(body: Global.Tree): Global.Tree
Make a synchronized block on 'monitor'.
-
def
mkSyntheticParam(pname: Global.TermName): Global.ValDef
- Definition Classes
- TreeGen
-
def
mkSyntheticUnit(): Global.Literal
- Definition Classes
- TreeGen
- def mkSysErrorCall(message: String): Global.Tree
-
def
mkTemplate(parents: List[Global.Tree], self: Global.ValDef, constrMods: Global.Modifiers, vparamss: List[List[Global.ValDef]], body: List[Global.Tree], superPos: Global.Position): Global.Template
- Definition Classes
- TreeGen
-
def
mkTreeOrBlock(stats: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkTuple(elems: List[Global.Tree], flattenUnary: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
mkTupleType(elems: List[Global.Tree], flattenUnary: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
mkTypeApply(fun: Global.Tree, targs: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
-
def
mkUnattributedRef(fullName: Global.Name): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkUnattributedRef(sym: Global.Symbol): Global.RefTree
- Definition Classes
- TreeGen
-
def
mkUnchecked(expr: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
mkUnitBlock(expr: Global.Tree): Global.Block
- Definition Classes
- TreeGen
-
def
mkVisitor(cases: List[Global.CaseDef], checkExhaustive: Boolean, prefix: String)(implicit fresh: FreshNameCreator): Global.Tree
- Definition Classes
- TreeGen
-
def
mkWildcardImport(pkg: Global.Symbol): Global.Import
Builds a fully attributed, synthetic wildcard import node.
-
def
mkWrapArray(tree: Global.Tree, elemtp: Global.Type): Global.Tree
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.
-
def
mkZero(tp: Global.Type): Global.Tree
- Definition Classes
- TreeGen
-
final
def
ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def newModule(accessor: Global.Symbol, tpe: Global.Type): Global.Tree
-
final
def
notify(): Unit
- Definition Classes
- AnyRef
-
final
def
notifyAll(): Unit
- Definition Classes
- AnyRef
- def paramToArg(arg: Global.Ident, isRepeatedParam: Boolean): Global.Tree
- def paramToArg(vparam: Global.ValDef): Global.Tree
- def paramToArg(vparam: Global.Symbol): Global.Tree
-
def
rootId(name: Global.Name): Global.Select
- Definition Classes
- TreeGen
-
def
rootScalaDot(name: Global.Name): Global.Select
- Definition Classes
- TreeGen
-
def
scalaAnnotationDot(name: Global.Name): Global.Select
- Definition Classes
- TreeGen
-
def
scalaAnyRefConstr: Global.Select
- Definition Classes
- TreeGen
-
def
scalaDot(name: Global.Name): Global.Select
- Definition Classes
- TreeGen
-
def
scalaFunctionConstr(argtpes: List[Global.Tree], restpe: Global.Tree, abstractFun: Boolean): Global.Tree
- Definition Classes
- TreeGen
-
def
stabilize(tree: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
-
def
stableTypeFor(tree: Global.Tree): Global.Type
- Definition Classes
- TreeGen
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- 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( ... )
- def wildcardStar(tree: Global.Tree): Global.Typed
- def →[B](y: B): (TreeGen, B)
-
object
Filter
- Definition Classes
- TreeGen
-
object
Yield
- Definition Classes
- TreeGen
-
object
patvarTransformer extends reflect.internal.SymbolTable.Transformer
- Definition Classes
- TreeGen
The Scala compiler API.
The following resources are useful for Scala plugin/compiler development: