diff options
Diffstat (limited to 'src/main/scala/scala/async/internal/LiveVariables.scala')
-rw-r--r-- | src/main/scala/scala/async/internal/LiveVariables.scala | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/src/main/scala/scala/async/internal/LiveVariables.scala b/src/main/scala/scala/async/internal/LiveVariables.scala index 48f03cd..0f95bca 100644 --- a/src/main/scala/scala/async/internal/LiveVariables.scala +++ b/src/main/scala/scala/async/internal/LiveVariables.scala @@ -49,10 +49,11 @@ trait LiveVariables { // determine which fields should be live also at the end (will not be nulled out) val noNull: Set[Symbol] = liftedSyms.filter { sym => - liftables.exists { tree => + sym.tpe.typeSymbol.isPrimitiveValueClass || liftables.exists { tree => !liftedSyms.contains(tree.symbol) && tree.exists(_.symbol == sym) } } + AsyncUtils.vprintln(s"fields never zero-ed out: ${noNull.mkString(", ")}") /** * Traverse statements of an `AsyncState`, collect `Ident`-s refering to lifted fields. |