aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-08 16:19:08 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-05-08 16:19:08 +0200
commit338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12 (patch)
tree7f9dedea8e05a92ce04d7c8a29e74177bea7150e /src
parent04492dfa72f58f26dc48858ad5a9232abe197eb2 (diff)
downloaddotty-338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12.tar.gz
dotty-338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12.tar.bz2
dotty-338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12.zip
LazyVals: fix initialisers of local lazy vals to be called.
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/transform/LazyVals.scala8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/transform/LazyVals.scala b/src/dotty/tools/dotc/transform/LazyVals.scala
index 62dc2f085..27625085f 100644
--- a/src/dotty/tools/dotc/transform/LazyVals.scala
+++ b/src/dotty/tools/dotc/transform/LazyVals.scala
@@ -109,10 +109,10 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
tpe)
val initTree = DefDef(initSymbol, initBody)
val holderTree = ValDef(holderSymbol, New(holderImpl.typeRef, List()))
- val methodBody = {
- tpd.If(flag, EmptyTree, ref(initSymbol))
- result.ensureApplied.ensureConforms(tpe)
- }
+ val methodBody = tpd.If(flag.ensureApplied,
+ result.ensureApplied,
+ ref(initSymbol).ensureApplied).ensureConforms(tpe)
+
val methodTree = DefDef(x.symbol.asTerm, methodBody)
ctx.debuglog(s"found a lazy val ${x.show},\n rewrote with ${holderTree.show}")
Thicket(holderTree, initTree, methodTree)