aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/TransformUtils.scala
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2012-11-22 06:10:00 -0800
committerPhilipp Haller <hallerp@gmail.com>2012-11-22 06:10:00 -0800
commit1c91fec998d09e31c2c52760452af1771a092182 (patch)
tree8733f9b854baa83194b1688fa30ed5fc90fd249c /src/main/scala/scala/async/TransformUtils.scala
parentf451904320d02c7dbe6b298f6ff790ca5cf5f080 (diff)
parent8e4a8ecdff955c4faa1dec344a2b93543ffe7d45 (diff)
downloadscala-async-1c91fec998d09e31c2c52760452af1771a092182.tar.gz
scala-async-1c91fec998d09e31c2c52760452af1771a092182.tar.bz2
scala-async-1c91fec998d09e31c2c52760452af1771a092182.zip
Merge pull request #25 from phaller/topic/minimal-var-lifting-2
Topic/minimal var lifting 2
Diffstat (limited to 'src/main/scala/scala/async/TransformUtils.scala')
-rw-r--r--src/main/scala/scala/async/TransformUtils.scala22
1 files changed, 22 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/TransformUtils.scala b/src/main/scala/scala/async/TransformUtils.scala
new file mode 100644
index 0000000..d36c277
--- /dev/null
+++ b/src/main/scala/scala/async/TransformUtils.scala
@@ -0,0 +1,22 @@
+/**
+ * Copyright (C) 2012 Typesafe Inc. <http://www.typesafe.com>
+ */
+package scala.async
+
+import scala.reflect.macros.Context
+
+/**
+ * Utilities used in both `ExprBuilder` and `AnfTransform`.
+ */
+class TransformUtils[C <: Context](val c: C) {
+ import c.universe._
+
+ protected def defaultValue(tpe: Type): Literal = {
+ val defaultValue: Any =
+ if (tpe <:< definitions.BooleanTpe) false
+ else if (definitions.ScalaNumericValueClasses.exists(tpe <:< _.toType)) 0
+ else if (tpe <:< definitions.AnyValTpe) 0
+ else null
+ Literal(Constant(defaultValue))
+ }
+}