object gen extends ast.TreeGen
Tree generation, usually based on existing symbols.
- Definition Classes
- Global → SymbolTable
- Source
- Global.scala
- Alphabetic
- By Inheritance
- gen
- TreeGen
- TreeDSL
- TreeGen
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Type Members
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
- 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 convertToSelectFromType(qual: Global.Tree, origName: Global.Name): Global.Tree with java.io.Serializable
Try to convert Select(qual, name) to a SelectFromTypeTree.
Try to convert Select(qual, name) to a SelectFromTypeTree.
- Definition Classes
- TreeGen
- def convertToTypeName(tree: Global.Tree): Option[Global.RefTree]
Translate names in Select/Ident nodes to type names.
Translate names in Select/Ident nodes to type names.
- Definition Classes
- TreeGen
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def evalOnce(expr: Global.Tree, owner: Global.Symbol, fresh: FreshNameCreator)(within: (() => Global.Tree) => Global.Tree): Global.Tree
- Definition Classes
- TreeGen
- 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
Used in situations where you need to access value of an expression several times
- Definition Classes
- TreeGen
- def evalOnceAll(exprs: List[Global.Tree], owner: Global.Symbol, fresh: FreshNameCreator)(within: (List[() => Global.Tree]) => Global.Tree): Global.Tree
- Definition Classes
- TreeGen
- def evalOnceAll(exprs: List[Global.Tree], owner: Global.Symbol, unit: Global.CompilationUnit)(within: (List[() => Global.Tree]) => Global.Tree): Global.Tree
- Definition Classes
- TreeGen
- def expandFunction(localTyper: (analyzer)#Typer)(fun: Global.Function, inConstructorFlag: Long): Global.Tree
- Definition Classes
- TreeGen
- 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()
- val global: Global.this.type
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- def isPatVarWarnable: Boolean
- Definition Classes
- TreeGen → TreeGen
- def isVarDefWarnable: Boolean
- Definition Classes
- TreeGen → TreeGen
- 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.
- Definition Classes
- TreeGen
- def mkAppliedTypeForCase(clazz: Global.Symbol): Global.Tree
- Definition Classes
- TreeGen
- 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
- Definition Classes
- TreeGen
- def mkAttributedCast(tree: Global.Tree, pt: Global.Type): 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
- Definition Classes
- TreeGen
- 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.
Generate a cast for tree Tree representing Array with elem type elemtp to expected type pt.
- Definition Classes
- TreeGen
- def mkCastPreservingAnnotations(tree: Global.Tree, pt: Global.Type): Global.Typed
- Definition Classes
- TreeGen
- 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
Make forwarder to method
target
, passing all parameters inparams
- Definition Classes
- TreeGen
- 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
}- Definition Classes
- TreeGen
- def mkImportFromSelector(qualSym: Global.Symbol, selector: List[Global.ImportSelector]): Global.Import
- Definition Classes
- TreeGen
- 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
- Definition Classes
- TreeGen
- 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
- Definition Classes
- TreeGen
- 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
- Definition Classes
- TreeGen
- 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, rhsPos: Global.Position)(implicit fresh: FreshNameCreator): List[Global.ValDef]
- 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
- Definition Classes
- TreeGen
- def mkRuntimeCall(meth: Global.Name, args: List[Global.Tree]): Global.Tree
- Definition Classes
- TreeGen
- def mkRuntimeUniverseRef: Global.Tree
- Definition Classes
- TreeGen
- def mkSeqApply(arg: Global.Tree): Global.Apply
- Definition Classes
- TreeGen
- def mkSoftRef(expr: Global.Tree): Global.Tree
- Definition Classes
- TreeGen
- 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.
- Definition Classes
- TreeGen
- def mkSuperInitCall: Global.Select
- Definition Classes
- TreeGen
- def mkSynchronized(monitor: Global.Tree)(body: Global.Tree): Global.Tree
Make a synchronized block on 'monitor'.
Make a synchronized block on 'monitor'.
- Definition Classes
- TreeGen
- def mkSyntheticParam(pname: Global.TermName): Global.ValDef
- Definition Classes
- TreeGen
- def mkSyntheticUnit(): Global.Literal
- Definition Classes
- TreeGen
- 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 mkThrowNewRuntimeException(message: String): Global.Throw
- 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.
Builds a fully attributed, synthetic wildcard import node.
- Definition Classes
- TreeGen
- def mkWrapVarargsArray(tree: Global.Tree, elemtp: Global.Type): Global.Tree
Applies a wrapArray call to an array, making it an immutable ArraySeq suitable for Scala varargs.
Applies a wrapArray call to an array, making it an immutable ArraySeq suitable for Scala varargs. Don't let a reference type parameter be inferred, in case it's a singleton: apply the element type directly.
- Definition Classes
- TreeGen
- 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
- Definition Classes
- TreeGen
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def paramToArg(arg: Global.Ident, isRepeatedParam: Boolean): Global.Tree
- Definition Classes
- TreeGen
- def paramToArg(vparam: Global.ValDef): Global.Tree
- Definition Classes
- TreeGen
- def paramToArg(vparam: Global.Symbol): Global.Tree
- Definition Classes
- TreeGen
- 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(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()
- def wildcardStar(tree: Global.Tree): Global.Typed
- Definition Classes
- TreeGen
- object Filter
- Definition Classes
- TreeGen
- object Yield
- Definition Classes
- TreeGen
- object patvarTransformer extends PatvarTransformer
- Definition Classes
- TreeGen
- object CODE
- Definition Classes
- TreeDSL
The Scala compiler and reflection APIs.