diff options
author | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-08 16:19:08 +0200 |
---|---|---|
committer | Dmitry Petrashko <dmitry.petrashko@gmail.com> | 2015-05-08 16:19:08 +0200 |
commit | 338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12 (patch) | |
tree | 7f9dedea8e05a92ce04d7c8a29e74177bea7150e /src | |
parent | 04492dfa72f58f26dc48858ad5a9232abe197eb2 (diff) | |
download | dotty-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.scala | 8 |
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) |