@@ -166,7 +166,10 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
166
166
val tpe = x.tpe.widen.resultType.widen
167
167
assert(! (x.mods is Flags .Mutable ))
168
168
val containerName = ctx.freshName(x.name ++ StdNames .nme.LAZY_LOCAL ).toTermName
169
- val containerSymbol = ctx.newSymbol(claz, containerName, (x.mods &~ containerFlagsMask | containerFlags).flags, tpe, coord = x.symbol.coord).enteredAfter(this )
169
+ val containerSymbol = ctx.newSymbol(claz, containerName,
170
+ x.symbol.flags &~ containerFlagsMask | containerFlags | Flags .Private ,
171
+ tpe, coord = x.symbol.coord
172
+ ).enteredAfter(this )
170
173
171
174
val containerTree = ValDef (containerSymbol, initValue(tpe))
172
175
if (x.tpe.isNotNull && tpe <:< defn.ObjectType ) { // can use 'null' value instead of flag
@@ -175,7 +178,7 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
175
178
}
176
179
else {
177
180
val flagName = ctx.freshName(x.name ++ StdNames .nme.BITMAP_PREFIX ).toTermName
178
- val flagSymbol = ctx.newSymbol(x.symbol.owner, flagName, containerFlags, defn.BooleanType )
181
+ val flagSymbol = ctx.newSymbol(x.symbol.owner, flagName, containerFlags | Flags . Private , defn.BooleanType ).entered
179
182
val flag = ValDef (flagSymbol, Literal (Constants .Constant (false )))
180
183
val slowPath = DefDef (x.symbol.asTerm, mkNonThreadSafeDef(ref(containerSymbol), ref(flagSymbol), x.rhs))
181
184
Thicket (List (containerTree, flag, slowPath))
0 commit comments