TreeTransformScope

cps.macros.forest.TreeTransformScope
trait TreeTransformScope[F[_], CT, CC <: CpsMonadContext[F]] extends CpsTreeScope[F, CT, CC] with KnownTreeFragments[F, CT, CC] with TypeApplyTreeTransform[F, CT, CC] with RootTreeTransform[F, CT, CC] with ApplyTreeTransform[F, CT, CC] with ApplicationHelper[F, CT, CC] with AwaitTreeTransform[F, CT, CC] with SelectTreeTransform[F, CT, CC] with LambdaTreeTransform[F, CT, CC] with MatchTreeTransform[F, CT, CC] with AsyncTreeShifter[F, CT, CC] with RepeatedTreeTransform[F, CT, CC] with InlinedTreeTransform[F, CT, CC] with SelectOuterTreeTransform[F, CT, CC] with BlockTreeTransform[F, CT, CC] with ValDefTreeTransform[F, CT, CC]

Attributes

Source:
TreeTransformScope.scala
Graph
Supertypes
trait ValDefTreeTransform[F, CT, CC]
trait BlockTreeTransform[F, CT, CC]
trait SelectOuterTreeTransform[F, CT, CC]
trait InlinedTreeTransform[F, CT, CC]
trait RepeatedTreeTransform[F, CT, CC]
trait AsyncTreeShifter[F, CT, CC]
trait MatchTreeTransform[F, CT, CC]
trait LambdaTreeTransform[F, CT, CC]
trait SelectTreeTransform[F, CT, CC]
trait AwaitTreeTransform[F, CT, CC]
trait ApplicationHelper[F, CT, CC]
trait PartialShiftedApplyScope[F, CT, CC]
trait ApplyArgBuilderScope[F, CT, CC]
trait ApplyArgRecordScope[F, CT, CC]
trait ApplyTreeTransform[F, CT, CC]
trait RootTreeTransform[F, CT, CC]
trait TypeApplyTreeTransform[F, CT, CC]
trait KnownTreeFragments[F, CT, CC]
trait CpsTreeScope[F, CT, CC]
class Object
trait Matchable
class Any
Known subtypes

Members list

Concise view

Type members

Classlikes

case class MessageWithPos(message: String, pos: Position)

Attributes

Source:
TreeTransformScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Inherited classlikes

case class AppendCpsTree(frs: CpsTree, snd: CpsTree) extends CpsTree

append cps tree, which is frs and then snd. we use this representation instead Mapped/Flatmapped in cases, where we later can apply await to append term and simplify tree instead wrapping awaited tree in extra flatMap

append cps tree, which is frs and then snd. we use this representation instead Mapped/Flatmapped in cases, where we later can apply await to append term and simplify tree instead wrapping awaited tree in extra flatMap

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class ApplyArgByNameRecord(term: Term, index: Int, cpsTree: CpsTree, optShiftType: Option[ApplicationShiftType]) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ApplyArgLambdaRecord(term: Term, index: Int, cpsBody: CpsTree, optShiftType: Option[ApplicationShiftType], existsLambdaUnshift: Boolean) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ApplyArgNamedRecord(term: NamedArg, name: String, nested: ApplyArgRecord) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ApplyArgNoPrecalcTermRecord(term: Term, index: Int, isChanged: Boolean) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ApplyArgPrecalcTermRecord(term: Term, index: Int, termCpsTree: CpsTree, valDef: ValDef, ident: Term) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
sealed trait ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class ApplyArgRepeatRecord(term: Repeated, index: Int, elements: List[ApplyArgRecord], seqTypeTree: TypeTree) extends ApplyArgRecord

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ApplyArgsSummaryProperties(step1: ApplyArgsSummaryPropertiesStep1, usePrepend: Boolean)

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
case class ApplyArgsSummaryPropertiesStep1(hasAsync: Boolean, hasShiftedLambda: Boolean, shouldBeChangedSync: Boolean)

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
sealed abstract class AsyncCpsTree extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
class CpsTree
class Object
trait Matchable
class Any
Known subtypes
case class AsyncLambdaCpsTree(originLambda: Term, params: List[ValDef], body: CpsTree, otpe: TypeRepr) extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class AwaitAsyncCpsTree(nested: CpsTree, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class AwaitSyncCpsTree(origin: Term, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
object B2

Attributes

Inherited from:
RootTreeTransform
Source:
RootTreeTransform.scala
Graph
Supertypes
class Object
trait Matchable
class Any
case class BlockCpsTree(prevs: Queue[Statement], last: CpsTree) extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
case class BuildApplyArgsAcc(posIndex: Int, paramIndex: Int, wasNamed: Boolean, inRepeat: Boolean, inNamed: Boolean, records: Seq[ApplyArgRecord], filledNamed: Set[Int])

Attributes

Inherited from:
ApplyArgBuilderScope
Source:
ApplyArgBuilderScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class CallChainSubstCpsTree(origin: Term, shifted: Term, otpe: TypeRepr) extends CpsTree

when we have swhifted function, which should return F[A] but we want to have in F[A] methods with special meaning, which should be performed on F[_] before jumping into monad (exampe: Iterable.withFilter) we will catch in ApplyTree such methods and substitute to appropriative calls of shifted.

when we have swhifted function, which should return F[A] but we want to have in F[A] methods with special meaning, which should be performed on F[_] before jumping into monad (exampe: Iterable.withFilter) we will catch in ApplyTree such methods and substitute to appropriative calls of shifted.

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
sealed abstract class CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any

Attributes

Inherited from:
MethodParamsDescriptorScope
Source:
MethodParamsDescriptorScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
case object EmptyCpsTree extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Inherited from:
MethodParamsDescriptorScope
Source:
MethodParamsDescriptorScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
case class FlatMappedCpsTree(prev: CpsTree, opm: Term => Term, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
case class InlinedBindingsRecord(changes: HashMap[Symbol, InlinedBindingRecord], newBindings: List[Definition], awaitVals: List[ValDef])

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class InlinedCpsTree(origin: Inlined, bindings: List[Definition], nested: CpsTree) extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class InlinedFunBindingRecord(newSym: Symbol, cpsTree: CpsTree, oldValDef: ValDef, newResultType: TypeRepr) extends InlinedBindingRecord

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class InlinedValBindingRecord(newSym: Symbol, cpsTree: CpsTree, oldValDef: ValDef) extends InlinedBindingRecord

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class MappedCpsTree(prev: CpsTree, op: Term => Term, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Inherited from:
MethodParamsDescriptorScope
Source:
MethodParamsDescriptorScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any

Attributes

Inherited from:
MethodParamsDescriptorScope
Source:
MethodParamsDescriptorScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes

Attributes

Inherited from:
MethodParamsDescriptorScope
Source:
MethodParamsDescriptorScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
object O

Attributes

Inherited from:
ApplyArgBuilderScope
Source:
ApplyArgBuilderScope.scala
Graph
Supertypes
class Object
trait Matchable
class Any
case class PartialShiftedApply(shiftType: ApplicationShiftType, shifted: Term)

Application with one list of params.

Application with one list of params.

Attributes

Inherited from:
PartialShiftedApplyScope
Source:
PartialShiftedApplyScope.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class PureCpsTree(origin: Statement, isChanged: Boolean) extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class SelectTypeApplyCpsTree(origin: Option[Term], nested: CpsTree, targs: List[TypeTree], selects: List[SelectTypeApplyRecord], otpe: TypeRepr, changed: Boolean) extends CpsTree

represent select expression, which can be in monad or outside monad.

represent select expression, which can be in monad or outside monad.

constructor is not devoted to used directly: use SelectTypeApplyCpsTree.create instead. selects is reversed (i.e. external added to head)

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
case class SelectTypeApplyRecord(prevTpe: TypeRepr, symbol: Symbol, targs: List[TypeTree], level: Int)

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
case class ValCpsTree(valDef: ValDef, rightPart: CpsTree, nested: CpsTree, canBeLambda: Boolean) extends CpsTree

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Value members

Concrete methods

def isInMonad(tpe: TypeRepr): Boolean

Attributes

Source:
TreeTransformScope.scala
def posExpr(t: Term): Expr[Any]

Attributes

Source:
TreeTransformScope.scala
def posExprs(terms: Term*): Expr[Any]

Attributes

Source:
TreeTransformScope.scala
def safeShow(t: Tree): String

Attributes

Source:
TreeTransformScope.scala
def safeTypeShow(tp: TypeRepr): String

Attributes

Source:
TreeTransformScope.scala
def unitTerm: Literal

Attributes

Source:
TreeTransformScope.scala

Inherited methods

def adoptContextInMyAwait(awaitTerm: Term, arg: Term, monadContext: Term): Term

Attributes

Inherited from:
AwaitTreeTransform
Source:
AwaitTreeTransform.scala
def asyncShift(t: Term, shiftedSymbols: Set[Symbol]): Term

Attributes

Inherited from:
AsyncTreeShifter
Source:
AsyncTreeShifter.scala
def asyncShiftCaseDef(cd: CaseDef, shiftedSymbols: Set[Symbol]): CaseDef

Attributes

Inherited from:
AsyncTreeShifter
Source:
AsyncTreeShifter.scala
def asyncShiftDefinition(t: Definition, shiftedSymbols: Set[Symbol]): Definition

Attributes

Inherited from:
AsyncTreeShifter
Source:
AsyncTreeShifter.scala
def asyncShiftStatement(t: Statement, shiftedSymbols: Set[Symbol]): Statement

Attributes

Inherited from:
AsyncTreeShifter
Source:
AsyncTreeShifter.scala
def blockBuildAwaitValueDiscard(discardTerm: Term, p: Term): Term

Attributes

Inherited from:
BlockTreeTransform
Source:
BlockTreeTransform.scala
def blockCheckValueDiscarded(t: Term): Boolean

Attributes

Inherited from:
BlockTreeTransform
Source:
BlockTreeTransform.scala
def buildApply(cpsFun: CpsTree, fun: Term, argRecords: Seq[ApplyArgRecord], applyTerm: Apply, argsProperties: ApplyArgsSummaryProperties, inShiftedCallChain: Boolean, tails: List[Seq[ApplyArgRecord]]): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def buildShiftedApply(cpsFun: CpsTree, fun: Term, argRecords: Seq[ApplyArgRecord], withAsync: Boolean, tails: List[Seq[ApplyArgRecord]], applyTerm: Apply): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def checkLambdaDef(term: Term): Option[Term]

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
def cpsShiftedMethodType(paramNames: List[String], paramTypes: List[TypeRepr], otpe: TypeRepr): MethodType

method type for (p1 ... pn) => F[otpe]

method type for (p1 ... pn) => F[otpe]

Attributes

Inherited from:
LambdaTreeTransform
Source:
LambdaTreeTransform.scala
def exprToTree[T](expr: CpsExpr[F, T], e: Term): CpsTree

Attributes

Inherited from:
RootTreeTransform
Source:
RootTreeTransform.scala
def findAsyncShiftTerm(e: Term): (ImplicitSearchResult, TypeRepr)

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def generateAwaitFor(term: Term, tpe: TypeRepr): Term

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
def handleArgs1(applyTerm: Apply, fun: Term, cpsFun: CpsTree, args: List[Term], tails: List[Seq[ApplyArgRecord]], unpure: Boolean): CpsTree

How to handle arguments? We want keep evaluation order from left to right, so, imagine we have function f(a1,a2,a3) and a2 is async, a1, a3 - sync. we will transform this to

How to handle arguments? We want keep evaluation order from left to right, so, imagine we have function f(a1,a2,a3) and a2 is async, a1, a3 - sync. we will transform this to

{ val arg1 = a1;
  transform(a2).flatMap( x =>
     { val arg2 = x;
       val arg3 = a3;
       f(arg1, arg2, arg3)
}    }

more generally we at first generate block: { arg1 = a1; ..... argN = aN; f(arg1,...argN) } and then transform one, knowing that all arguments to f are sync (of course, if all arguments are sync, we just call f(arg1,... arg2) without all this machinery)

Attributes

applyTerm

= Apply(fun, args) - origin apply

args
  • first argument list
fun
  • function to apply (with type-paerameters)
tails
  • next argument lists if any
unpure
  • if true, that this is call from shifted substitution, which is already return F[_] by design.
Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def handleFun(applyTerm: Apply, fun: Term, args: List[Term], tails: List[Seq[ApplyArgRecord]]): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def handleFunApply(applyTerm: Apply, fun: Term, args: List[Term], fun1: Term, args1: List[Term], tails: List[Seq[ApplyArgRecord]]): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def handleFunIdent(applyTerm: Apply, fun: Term, args: List[Term], name: String, tails: List[Seq[ApplyArgRecord]]): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def handleFunSelect(applyTerm: Apply, fun: Term, args: List[Term], obj: Term, methodName: String, tails: List[Seq[ApplyArgRecord]]): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def handleFunTypeApply(applyTerm: Apply, fun: Term, args: List[Term], obj: Term, targs: List[TypeTree], tails: List[Seq[ApplyArgRecord]]): CpsTree

applyTerm = Apply(fun, args) fun = TypeApply(obj,targs)

applyTerm = Apply(fun, args) fun = TypeApply(obj,targs)

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def runApply(applyTerm: Apply, fun: Term, args: List[Term], tails: List[Seq[ApplyArgRecord]]): CpsTree

case Apply(fun,args) transform application

case Apply(fun,args) transform application

tails -- list of prepared sequence of curried arguments.

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def runAwait(term: Term, arg: Term, awaitCpsMonadType: TypeRepr, awaitCpsMonad: Term, awaitCpsMonadContext: Term): CpsTree

Attributes

Inherited from:
AwaitTreeTransform
Source:
AwaitTreeTransform.scala
def runBlock(block: Block, prevs: List[Statement], last: Term): CpsTree

Attributes

Inherited from:
BlockTreeTransform
Source:
BlockTreeTransform.scala
def runInlined(origin: Inlined): CpsTree

Attributes

Inherited from:
InlinedTreeTransform
Source:
InlinedTreeTransform.scala
def runLambda(lambdaTerm: Term, params: List[ValDef], expr: Term): CpsTree

Attributes

Inherited from:
LambdaTreeTransform
Source:
LambdaTreeTransform.scala
def runMatch(matchTerm: Match): CpsTree

Attributes

Inherited from:
MatchTreeTransform
Source:
MatchTreeTransform.scala
def runMyAwait(awaitTerm: Term, arg: Term, context: Term): CpsTree

Attributes

Inherited from:
AwaitTreeTransform
Source:
AwaitTreeTransform.scala
def runOtherAwait(awaitTerm: Term, arg: Term, targ: TypeRepr, otherCpsMonad: Term, myMonadContext: Term): CpsTree

Attributes

Inherited from:
AwaitTreeTransform
Source:
AwaitTreeTransform.scala
def runRepeated(repeated: Term, elements: List[Term], tpt: TypeTree): CpsTree

Attributes

Inherited from:
RepeatedTreeTransform
Source:
RepeatedTreeTransform.scala
def runRoot(term: Term, muted: Boolean): CpsTree

Attributes

Inherited from:
RootTreeTransform
Source:
RootTreeTransform.scala
def runRootUneta(term: Term, muted: Boolean): CpsTree

Attributes

Inherited from:
RootTreeTransform
Source:
RootTreeTransform.scala
def runSelect(selectTerm: Select): CpsTree

Attributes

Inherited from:
SelectTreeTransform
Source:
SelectTreeTransform.scala
def runSelectOuter(term: SelectOuter): CpsTree
def runTypeApply(applyTerm: Term, fun: Term, targs: List[TypeTree]): CpsTree
def runValDefFromBlock(block: Block, valDef: ValDef): CpsTree

Attributes

Inherited from:
ValDefTreeTransform
Source:
ValDefTreeTransform.scala
def sameSelect(funTerm: Term, name: String, targs: List[TypeTree], args: List[Term]): Option[Term]

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def shiftedApplyCps(funCpsTree: CpsTree, argRecords: Seq[ApplyArgRecord], argTails: List[Seq[ApplyArgRecord]], applyTerm: Term, withAsync: Boolean): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def shiftedApplyTerm(funTerm: Term, argRecords: Seq[ApplyArgRecord], withAsync: Boolean): PartialShiftedApply

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def shiftedLambdaType(tpe: TypeRepr): TypeRepr

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def shiftedLambdaTypeTree(tpt: TypeTree): TypeTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def shiftedResultCpsTree(origin: Term, shifted: Term): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala
def termIsNoOrderDepended(x: Term): Boolean

Attributes

Inherited from:
ApplyArgRecordScope
Source:
ApplyArgRecordScope.scala
def valDefApplyMemoization(valDef: ValDef, cpsRhs: CpsTree, rhs: Term): CpsTree

Attributes

Inherited from:
ValDefTreeTransform
Source:
ValDefTreeTransform.scala
def withInlineBindings(origin: Inlined, tree: CpsTree): CpsTree

Attributes

Inherited from:
ApplyTreeTransform
Source:
ApplyTreeTransform.scala

Abstract fields

Attributes

Source:
TreeTransformScope.scala

Inherited fields

lazy val awaitSymbol: Symbol

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val flatMapSymbol: Symbol

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val mapSymbol: Symbol

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val monadTypeTree: Inferred

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val objAsyncShift: TypeRepr

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val partialFunctionType: TypeRepr

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala
lazy val pureSymbol: Symbol

Attributes

Inherited from:
KnownTreeFragments
Source:
KnownTreeFragments.scala

Extensions

Inherited extensions

extension (otherCake: TreeTransformScope[_[_], _, _])
def adopt(t: Term): Term

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
def adoptStatement(t: Statement): Statement

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
def adoptTerm(t: Term): Term

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
def adoptTermFun(op: Term => Term): Term => Term

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala
def adoptType(t: TypeRepr): TypeRepr

Attributes

Inherited from:
CpsTreeScope
Source:
CpsTree.scala

Implicits

Implicits

implicit val ccType: Type[CC]

Attributes

Source:
TreeTransformScope.scala
implicit val ctType: Type[CT]

Attributes

Source:
TreeTransformScope.scala
implicit val fType: Type[F]

Attributes

Source:
TreeTransformScope.scala
implicit val qctx: Quotes

Attributes

Source:
TreeTransformScope.scala