aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/LiveVariables.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2015-07-06 15:06:49 +1000
committerJason Zaugg <jzaugg@gmail.com>2015-07-06 15:06:49 +1000
commit6353443a0adec384172c38efac3bc96b9d2cbad2 (patch)
tree3a5944fd737d367072ae766dddaf39fcf331f50e /src/main/scala/scala/async/internal/LiveVariables.scala
parent720153706dcb0d311f4591b30198502d9980372d (diff)
downloadscala-async-6353443a0adec384172c38efac3bc96b9d2cbad2.tar.gz
scala-async-6353443a0adec384172c38efac3bc96b9d2cbad2.tar.bz2
scala-async-6353443a0adec384172c38efac3bc96b9d2cbad2.zip
Avoid masking real errors with NotImplemented awaiting Future[Nothing]
This commit disabled live variable analysis for intermediate values of type Nothing. Fixes #104
Diffstat (limited to 'src/main/scala/scala/async/internal/LiveVariables.scala')
-rw-r--r--src/main/scala/scala/async/internal/LiveVariables.scala2
1 files changed, 1 insertions, 1 deletions
diff --git a/src/main/scala/scala/async/internal/LiveVariables.scala b/src/main/scala/scala/async/internal/LiveVariables.scala
index 5b49398..db15015 100644
--- a/src/main/scala/scala/async/internal/LiveVariables.scala
+++ b/src/main/scala/scala/async/internal/LiveVariables.scala
@@ -56,7 +56,7 @@ trait LiveVariables {
// determine which fields should be live also at the end (will not be nulled out)
val noNull: Set[Symbol] = liftedSyms.filter { sym =>
val typeSym = tpe(sym).typeSymbol
- (typeSym.isClass && typeSym.asClass.isPrimitive) || liftables.exists { tree =>
+ (typeSym.isClass && (typeSym.asClass.isPrimitive || typeSym == definitions.NothingClass)) || liftables.exists { tree =>
!liftedSyms.contains(tree.symbol) && tree.exists(_.symbol == sym)
}
}