CpsTreeScope

cps.macros.forest.CpsTreeScope
trait CpsTreeScope[F[_], CT, CC <: CpsMonadContext[F]]

Attributes

Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
trait TreeTransformScope[F, CT, CC]
Self type

Members list

Concise view

Type members

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

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
sealed abstract class AsyncCpsTree extends CpsTree

Attributes

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

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

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

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class BlockCpsTree(prevs: Queue[Statement], last: CpsTree) extends CpsTree

Attributes

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
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

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

Attributes

Companion:
object
Graph
Supertypes
class Object
trait Matchable
class Any
Known subtypes
object CpsTree

Attributes

Companion:
class
Graph
Supertypes
trait Sum
trait Mirror
class Object
trait Matchable
class Any
Self type
CpsTree.type
case object EmptyCpsTree extends CpsTree

Attributes

Graph
Supertypes
trait Singleton
trait Product
trait Mirror
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Self type
case class FlatMappedCpsTree(prev: CpsTree, opm: Term => Term, otpe: TypeRepr) extends AsyncCpsTree

Attributes

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

Attributes

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

Attributes

Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
case class PureCpsTree(origin: Statement, isChanged: Boolean) extends CpsTree

Attributes

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

Companion:
object
Graph
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any

Attributes

Companion:
class
Graph
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class SelectTypeApplyRecord(prevTpe: TypeRepr, symbol: Symbol, targs: List[TypeTree], level: Int)

Attributes

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

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

Extensions

Extensions

extension (otherCake: TreeTransformScope[_[_], _, _])
def adopt(t: Term): Term
def adoptStatement(t: Statement): Statement
def adoptTerm(t: Term): Term
def adoptTermFun(op: Term => Term): Term => Term
def adoptType(t: TypeRepr): TypeRepr