From 338dcfa80cd5ecff0cb4a961ba8eabf061fc7f12 Mon Sep 17 00:00:00 2001 From: Dmitry Petrashko Date: Fri, 8 May 2015 16:19:08 +0200 Subject: LazyVals: fix initialisers of local lazy vals to be called. --- src/dotty/tools/dotc/transform/LazyVals.scala | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) (limited to 'src') 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) -- cgit v1.2.3