aboutsummaryrefslogtreecommitdiff
path: root/src/main/scala/scala/async/internal/Lifter.scala
diff options
context:
space:
mode:
authorJason Zaugg <jzaugg@gmail.com>2016-09-08 16:05:45 +1000
committerGitHub <noreply@github.com>2016-09-08 16:05:45 +1000
commit567ca8b1ca24c497c3a75e1d17609cca9d636a62 (patch)
tree0cb31396e673e880157cd154ca67e7afc65937a5 /src/main/scala/scala/async/internal/Lifter.scala
parentea6afc0266c10b693ad0daa1643a2ee5c834e076 (diff)
parentc15c45292b1cb858b32e3967d53126c9cc36f41b (diff)
downloadscala-async-567ca8b1ca24c497c3a75e1d17609cca9d636a62.tar.gz
scala-async-567ca8b1ca24c497c3a75e1d17609cca9d636a62.tar.bz2
scala-async-567ca8b1ca24c497c3a75e1d17609cca9d636a62.zip
Merge pull request #160 from retronym/topic/2.12
Compatibility with Scala 2.12.0-RC1
Diffstat (limited to 'src/main/scala/scala/async/internal/Lifter.scala')
-rw-r--r--src/main/scala/scala/async/internal/Lifter.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/main/scala/scala/async/internal/Lifter.scala b/src/main/scala/scala/async/internal/Lifter.scala
index 9481f69..3afe6d6 100644
--- a/src/main/scala/scala/async/internal/Lifter.scala
+++ b/src/main/scala/scala/async/internal/Lifter.scala
@@ -92,7 +92,7 @@ trait Lifter {
// Only mark transitive references of defs, modules and classes. The RHS of lifted vals/vars
// stays in its original location, so things that it refers to need not be lifted.
- if (!(sym.isTerm && (sym.asTerm.isVal || sym.asTerm.isVar)))
+ if (!(sym.isTerm && !sym.asTerm.isLazy && (sym.asTerm.isVal || sym.asTerm.isVar)))
defSymToReferenced(sym).foreach(sym2 => markForLift(sym2))
}
}
@@ -117,7 +117,8 @@ trait Lifter {
sym.setFlag(MUTABLE | STABLE | PRIVATE | LOCAL)
sym.setName(name.fresh(sym.name.toTermName))
sym.setInfo(deconst(sym.info))
- treeCopy.ValDef(vd, Modifiers(sym.flags), sym.name, TypeTree(tpe(sym)).setPos(t.pos), EmptyTree)
+ val rhs1 = if (sym.asTerm.isLazy) rhs else EmptyTree
+ treeCopy.ValDef(vd, Modifiers(sym.flags), sym.name, TypeTree(tpe(sym)).setPos(t.pos), rhs1)
case dd@DefDef(_, _, tparams, vparamss, tpt, rhs) =>
sym.setName(this.name.fresh(sym.name.toTermName))
sym.setFlag(PRIVATE | LOCAL)