Skip to content

Commit 14cbb47

Browse files
committed
LazyVals: eagerly enter private symbols.
1 parent d21036c commit 14cbb47

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

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

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -172,7 +172,7 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
172172
val containerSymbol = ctx.newSymbol(claz, containerName,
173173
x.symbol.flags &~ containerFlagsMask | containerFlags | Flags.Private,
174174
tpe, coord = x.symbol.coord
175-
).enteredAfter(this)
175+
).entered
176176

177177
val containerTree = ValDef(containerSymbol, initValue(tpe))
178178
if (x.tpe.isNotNull && tpe <:< defn.ObjectType) { // can use 'null' value instead of flag
@@ -312,7 +312,7 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
312312
} else { // need to create a new flag
313313
offsetSymbol = ctx.newSymbol(companion.moduleClass, (StdNames.nme.LAZY_FIELD_OFFSET + id.toString).toTermName, Flags.Synthetic, defn.LongType).enteredAfter(this)
314314
val flagName = (StdNames.nme.BITMAP_PREFIX + id.toString).toTermName
315-
val flagSymbol = ctx.newSymbol(claz, flagName, containerFlags, defn.LongType).enteredAfter(this)
315+
val flagSymbol = ctx.newSymbol(claz, flagName, containerFlags, defn.LongType).entered
316316
flag = ValDef(flagSymbol, Literal(Constants.Constant(0L)))
317317
val offsetTree = ValDef(offsetSymbol, getOffset.appliedTo(thizClass, Literal(Constant(flagName.toString))))
318318
info.defs = offsetTree :: info.defs
@@ -321,17 +321,17 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
321321
case None =>
322322
offsetSymbol = ctx.newSymbol(companion.moduleClass, (StdNames.nme.LAZY_FIELD_OFFSET + "0").toTermName, Flags.Synthetic, defn.LongType).enteredAfter(this)
323323
val flagName = (StdNames.nme.BITMAP_PREFIX + "0").toTermName
324-
val flagSymbol = ctx.newSymbol(claz, flagName, containerFlags, defn.LongType).enteredAfter(this)
324+
val flagSymbol = ctx.newSymbol(claz, flagName, containerFlags, defn.LongType).entered
325325
flag = ValDef(flagSymbol, Literal(Constants.Constant(0L)))
326326
val offsetTree = ValDef(offsetSymbol, getOffset.appliedTo(thizClass, Literal(Constant(flagName.toString))))
327-
appendOffsetDefs += (companion.name.moduleClassName -> new OffsetInfo(List(offsetTree), ord))
327+
appendOffsetDefs += (companion.moduleClass -> new OffsetInfo(List(offsetTree), ord))
328328
}
329329

330330
val containerName = ctx.freshName(x.name ++ StdNames.nme.LAZY_LOCAL).toTermName
331-
val containerSymbol = ctx.newSymbol(claz, containerName, (x.mods &~ containerFlagsMask | containerFlags).flags, tpe, coord = x.symbol.coord).enteredAfter(this)
331+
val containerSymbol = ctx.newSymbol(claz, containerName, (x.mods &~ containerFlagsMask | containerFlags).flags, tpe, coord = x.symbol.coord).entered
332332
val containerTree = ValDef(containerSymbol, initValue(tpe))
333333

334-
val offset = Select(ref(companion), offsetSymbol.name)
334+
val offset = ref(companion).ensureApplied.select(offsetSymbol)
335335
val getFlag = Select(ref(helperModule), RLazyValsNames_get)
336336
val setFlag = Select(ref(helperModule), RLazyValsNames_setFlag)
337337
val wait = Select(ref(helperModule), RLazyValsNames_wait4Notification)

0 commit comments

Comments
 (0)