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
- Protected
Instance Constructors
- ๎ new TreeGen()
Type Members
Abstract Value Members
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[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.
- ๎
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: AnyRef): Boolean
- Definition Classes
- AnyRef โ Any
- ๎ def evalOnce(expr: Global.Tree, owner: Global.Symbol, fresh: FreshNameCreator)(within: (() => Global.Tree) => Global.Tree): Global.Tree
- ๎
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, fresh: FreshNameCreator)(within: (List[() => Global.Tree]) => Global.Tree): Global.Tree
- ๎ 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[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
- ๎
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.
- ๎ 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 mkImportFromSelector(qualSym: Global.Symbol, selector: List[Global.ImportSelector]): Global.Import
- ๎
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, 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
- ๎ 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 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
- ๎
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 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.
- ๎
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
- Annotations
- @native()
- ๎
final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- ๎ 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(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
- ๎
object Filter
- Definition Classes
- TreeGen
- ๎
object Yield
- Definition Classes
- TreeGen
- ๎
object patvarTransformer extends PatvarTransformer
- Definition Classes
- TreeGen
Deprecated Value Members
- ๎
def formatted(fmtstr: String): String
- Implicit
- This member is added by an implicit conversion from TreeGen toStringFormat[TreeGen] 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): (TreeGen, B)
- Implicit
- This member is added by an implicit conversion from TreeGen toArrowAssoc[TreeGen] 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.
The Scala compiler and reflection APIs.