aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/AsyncId.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2013-07-24 21:56:25 +1000
committerJason Zaugg <jzaugg@gmail.com>2013-07-24 21:56:25 +1000
commit3bdb1d69a5c24443726ec7e610fef18ba7d34297 (patch)
tree1df9624f107d21f711bde6d8386ff441f8dc9669 /src/main/scala/scala/async/internal/AsyncId.scala
parentc78081090ef2fddcb013c908b3a986d2769a9fe2 (diff)
downloadscala-async-3bdb1d69a5c24443726ec7e610fef18ba7d34297.tar.gz
scala-async-3bdb1d69a5c24443726ec7e610fef18ba7d34297.tar.bz2
scala-async-3bdb1d69a5c24443726ec7e610fef18ba7d34297.zip
Support await in throws.
Also support AsyncId.async[Nothing], which was triggering a NPE in the generated `null.asInstanceOf[Nothing]`.
Diffstat (limited to 'src/main/scala/scala/async/internal/AsyncId.scala')
-rw-r--r--src/main/scala/scala/async/internal/AsyncId.scala6
1 files changed, 4 insertions, 2 deletions
diff --git a/src/main/scala/scala/async/internal/AsyncId.scala b/src/main/scala/scala/async/internal/AsyncId.scala
index 394f587..4334088 100644
--- a/src/main/scala/scala/async/internal/AsyncId.scala
+++ b/src/main/scala/scala/async/internal/AsyncId.scala
@@ -23,7 +23,9 @@ object AsyncId extends AsyncBase {
*/
object IdentityFutureSystem extends FutureSystem {
- class Prom[A](var a: A)
+ class Prom[A] {
+ var a: A = _
+ }
type Fut[A] = A
type ExecContext = Unit
@@ -39,7 +41,7 @@ object IdentityFutureSystem extends FutureSystem {
def execContextType: Type = weakTypeOf[Unit]
def createProm[A: WeakTypeTag]: Expr[Prom[A]] = reify {
- new Prom(null.asInstanceOf[A])
+ new Prom()
}
def promiseToFuture[A: WeakTypeTag](prom: Expr[Prom[A]]) = reify {