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
TreeTransformScope[F, CT, CC]

Members list

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

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

Attributes

Supertypes
class CpsTree
class Object
trait Matchable
class Any
Known subtypes
case class AsyncLambdaCpsTree(owner: Symbol, originLambda: Term, params: List[ValDef], body: CpsTree, otpe: TypeRepr) extends CpsTree

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Show all
case class AwaitAsyncCpsTree(nested: CpsTree, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class AsyncCpsTree
class CpsTree
class Object
trait Matchable
class Any
Show all
case class AwaitSyncCpsTree(owner: Symbol, origin: Term, otpe: TypeRepr) extends AsyncCpsTree

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class AsyncCpsTree
class CpsTree
class Object
trait Matchable
class Any
Show all
case class BlockCpsTree(owner: Symbol, prevs: Queue[Statement], last: CpsTree) extends CpsTree

Attributes

Companion
object
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Show all
object BlockCpsTree

Attributes

Companion
class
Supertypes
trait Product
trait Mirror
class Object
trait Matchable
class Any
Self type
case class CallChainSubstCpsTree(owner: Symbol, 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

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

Attributes

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

Attributes

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

Attributes

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

Attributes

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

Attributes

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

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class AsyncCpsTree
class CpsTree
class Object
trait Matchable
class Any
Show all
case class PureCpsTree(owner: Symbol, origin: Statement, isChanged: Boolean) extends CpsTree

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Show all
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
Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Show all

Attributes

Companion
class
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

Supertypes
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
case class ValCpsTree(owner: Symbol, valDef: ValDef, rightPart: CpsTree, nested: CpsTree, canBeLambda: Boolean) extends CpsTree

Attributes

Supertypes
trait Serializable
trait Product
trait Equals
class CpsTree
class Object
trait Matchable
class Any
Show all

Extensions

Extensions

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