ChangeOwnerTest
cps.macros.misc.ChangeOwnerTest
object ChangeOwnerTest
Minimal macros to test whether various tree manipulations break default getter Selects.
Attributes
- Source
- ChangeOwnerTest.scala
- Graph
-
- Supertypes
-
class Objecttrait Matchableclass Any
- Self type
-
ChangeOwnerTest.type
Members list
Value members
Concrete methods
Simulate the async macro: decompose block, reassemble, wrap in identity function call via quasiquotes, then wrap in lambda.
Simulate the async macro: decompose block, reassemble, wrap in identity function call via quasiquotes, then wrap in lambda.
Attributes
- Source
- ChangeOwnerTest.scala
def simulateAsyncMacroImpl[T : Type](body: Expr[T])(implicit evidence$1: Type[T], Quotes): Expr[() => T]
Attributes
- Source
- ChangeOwnerTest.scala
Simulate with context lambda + substituteLambdaParams (TreeMap traversal) + full BlockTransform path. The actual async macro:
Simulate with context lambda + substituteLambdaParams (TreeMap traversal) + full BlockTransform path. The actual async macro:
- Wraps body in context lambda: (ctx: C) ?=> body
- Extracts the lambda, does body.changeOwner(spliceOwner).asExprOf[T]
- Runs BlockTransform which seals last separately, processes via ApplyTreeTransform
- Reassembles via SyncCpsExpr.syncOrigin / ValWrappedCpsExpr.syncOrigin
- Creates new Lambda using substituteLambdaParams + changeOwner
Attributes
- Source
- ChangeOwnerTest.scala
def simulateWithTreeMapImpl[T : Type](body: Expr[T])(implicit evidence$1: Type[T], Quotes): Expr[() => T]
Attributes
- Source
- ChangeOwnerTest.scala
Attributes
- Source
- ChangeOwnerTest.scala
Attributes
- Source
- ChangeOwnerTest.scala
In this article