CallChainSubstCpsTree

cps.macros.forest.CpsTreeScope.CallChainSubstCpsTree
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.

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Members list

Concise view

Value members

Concrete methods

override def appendFinal(next: CpsTree): CpsTree

Attributes

Definition Classes
override def applyAwait(newOtpe: TypeRepr): CpsTree

Attributes

Definition Classes
override def castOtpe(newOtpe: TypeRepr): CpsTree

cast CpsTree to keep newOtpe.type inside monad.

cast CpsTree to keep newOtpe.type inside monad.

Attributes

Definition Classes
override def inCake[F1[_], T1, C1 <: CpsMonadContext[F1]](otherCake: TreeTransformScope[F1, T1, C1]): CallChainSubstCpsTree

Attributes

Definition Classes
override def isAsync: Boolean

Attributes

Definition Classes
override def isChanged: Boolean

Attributes

Definition Classes
override def isLambda: Boolean

Attributes

Definition Classes
override def monadFlatMap(f: Term => Term, ntpe: TypeRepr): CpsTree

Attributes

Definition Classes
override def monadMap(f: Term => Term, ntpe: TypeRepr): CpsTree

Attributes

Definition Classes
override def syncOrigin: Option[Term]

Attributes

Definition Classes
override def transformed: Term

Attributes

Definition Classes

Inherited methods

def append(next: CpsTree): CpsTree

Attributes

Inherited from:
CpsTree
def isSync: Boolean

Attributes

Inherited from:
CpsTree
def prepend(prev: CpsTree): CpsTree

Attributes

Inherited from:
CpsTree
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product
def rtpe: TypeRepr

type which we see outside. i.e. F[T] for near all 'normal' trees or X=>F[T] for async lambda.

type which we see outside. i.e. F[T] for near all 'normal' trees or X=>F[T] for async lambda.

Attributes

Inherited from:
CpsTree
def select(orig: Term, symbol: Symbol, ntpe: TypeRepr): CpsTree

Attributes

Inherited from:
CpsTree
def toResult[T : Type]: CpsExpr[F, T]

Attributes

Inherited from:
CpsTree
def toResultWithType[T](qt: Type[T]): CpsExpr[F, T]

Attributes

Inherited from:
CpsTree
def typeApply(orig: Term, targs: List[TypeTree], ntpe: TypeRepr): CpsTree

Attributes

Inherited from:
CpsTree