diff options
author | Philipp Haller <hallerp@gmail.com> | 2012-11-22 06:10:00 -0800 |
---|---|---|
committer | Philipp Haller <hallerp@gmail.com> | 2012-11-22 06:10:00 -0800 |
commit | 1c91fec998d09e31c2c52760452af1771a092182 (patch) | |
tree | 8733f9b854baa83194b1688fa30ed5fc90fd249c /src/main/scala/scala/async/TransformUtils.scala | |
parent | f451904320d02c7dbe6b298f6ff790ca5cf5f080 (diff) | |
parent | 8e4a8ecdff955c4faa1dec344a2b93543ffe7d45 (diff) | |
download | scala-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.scala | 22 |
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)) + } +} |