Skip to content

Commit 1822623

Browse files
committed
Fixes #1856: mimic Scalac sematic of recursive lazy vals.
1 parent be64643 commit 1822623

File tree

1 file changed

+3
-2
lines changed

1 file changed

+3
-2
lines changed

compiler/src/dotty/tools/dotc/transform/LazyVals.scala

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -186,8 +186,9 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
186186

187187
def mkNonThreadSafeDef(target: Tree, flag: Tree, rhs: Tree)(implicit ctx: Context) = {
188188
val setFlag = flag.becomes(Literal(Constants.Constant(true)))
189-
val setTargets = if (isWildcardArg(rhs)) Nil else target.becomes(rhs) :: Nil
190-
val init = Block(setFlag :: setTargets, target.ensureApplied)
189+
val flagSet = setFlag :: Nil
190+
val targetSet = if (isWildcardArg(rhs)) flagSet else target.becomes(rhs) :: flagSet
191+
val init = Block(targetSet, target.ensureApplied)
191192
If(flag.ensureApplied, target.ensureApplied, init)
192193
}
193194

0 commit comments

Comments
 (0)