aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/TransformUtils.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2012-11-24 09:15:36 +0100
committerJason Zaugg <jzaugg@gmail.com>2012-11-24 09:15:36 +0100
commit49c169e123dc5e90bcc5f23f63f1415c645603d5 (patch)
treebd14904f49b2f71b342a88475f02ad885b3a67b1 /src/main/scala/scala/async/TransformUtils.scala
parent535ca23858a233978ce874d5cbad7d586f1e8635 (diff)
downloadscala-async-49c169e123dc5e90bcc5f23f63f1415c645603d5.tar.gz
scala-async-49c169e123dc5e90bcc5f23f63f1415c645603d5.tar.bz2
scala-async-49c169e123dc5e90bcc5f23f63f1415c645603d5.zip
Centralize naming.
Diffstat (limited to 'src/main/scala/scala/async/TransformUtils.scala')
-rw-r--r--src/main/scala/scala/async/TransformUtils.scala26
1 files changed, 25 insertions, 1 deletions
diff --git a/src/main/scala/scala/async/TransformUtils.scala b/src/main/scala/scala/async/TransformUtils.scala
index 5095875..9a8814f 100644
--- a/src/main/scala/scala/async/TransformUtils.scala
+++ b/src/main/scala/scala/async/TransformUtils.scala
@@ -9,10 +9,34 @@ import reflect.ClassTag
/**
* Utilities used in both `ExprBuilder` and `AnfTransform`.
*/
-class TransformUtils[C <: Context](val c: C) {
+private[async] class TransformUtils[C <: Context](val c: C) {
import c.universe._
+ private[async] object name {
+ def suffix(string: String) = string + "$async"
+
+ def suffixedName(prefix: String) = newTermName(suffix(prefix))
+
+ val state = suffixedName("state")
+ val result = suffixedName("result")
+ val resume = suffixedName("resume")
+ val execContext = suffixedName("execContext")
+
+ // TODO do we need to freshen any of these?
+ val x1 = newTermName("x$1")
+ val tr = newTermName("tr")
+ val onCompleteHandler = suffixedName("onCompleteHandler")
+
+ val matchRes = "matchres"
+ val ifRes = "ifres"
+ val await = "await"
+
+ def fresh(name: TermName): TermName = newTermName(fresh(name.toString))
+
+ def fresh(name: String): String = if (name.toString.contains("$")) name else c.fresh("" + name + "$")
+ }
+
protected def defaultValue(tpe: Type): Literal = {
val defaultValue: Any =
if (tpe <:< definitions.BooleanTpe) false