aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala
diff options
context:
space:
mode:
authorPhilipp Haller <hallerp@gmail.com>2013-02-26 01:16:40 +0100
committerPhilipp Haller <hallerp@gmail.com>2013-02-26 01:20:51 +0100
commit183d1156a6dd0640c3fa662376022d874804a195 (patch)
treef872acf39af5c1f38ab4b6e9135d4330bb1c3f1b /src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala
parent8a80f4405203afad4baf3c32e0372475cb70fc1b (diff)
downloadscala-async-183d1156a6dd0640c3fa662376022d874804a195.tar.gz
scala-async-183d1156a6dd0640c3fa662376022d874804a195.tar.bz2
scala-async-183d1156a6dd0640c3fa662376022d874804a195.zip
Fix #55 - Async implementation depends on continuations plugin
- remove CPS dependency from default async implementation (fix #55) - move all CPS-related code to `continuations` sub package - fix CPS-based async implementation - enable testing of CPS-based async implementation
Diffstat (limited to 'src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala')
-rw-r--r--src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala b/src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala
new file mode 100644
index 0000000..fe6e1a6
--- /dev/null
+++ b/src/main/scala/scala/async/continuations/AsyncWithCPSFallback.scala
@@ -0,0 +1,20 @@
+/*
+ * Copyright (C) 2012 Typesafe Inc. <http://www.typesafe.com>
+ */
+
+package scala.async
+package continuations
+
+import scala.language.experimental.macros
+
+import scala.reflect.macros.Context
+import scala.concurrent.Future
+
+trait AsyncWithCPSFallback extends AsyncBaseWithCPSFallback with ScalaConcurrentCPSFallback
+
+object AsyncWithCPSFallback extends AsyncWithCPSFallback {
+
+ def async[T](body: T) = macro asyncImpl[T]
+
+ override def asyncImpl[T: c.WeakTypeTag](c: Context)(body: c.Expr[T]): c.Expr[Future[T]] = super.asyncImpl[T](c)(body)
+}