aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-27 19:01:48 +0200
committerDmitry Petrashko <dmitry.petrashko@gmail.com>2015-04-30 14:26:08 +0200
commitca11f55fdd906881e57188946d32f237117d4fa3 (patch)
treecf2ba53b832c08b72c73b3912e59dc0f198f8679
parentf322c989c6e7919662a151421cb96c96eefe5251 (diff)
downloaddotty-ca11f55fdd906881e57188946d32f237117d4fa3.tar.gz
dotty-ca11f55fdd906881e57188946d32f237117d4fa3.tar.bz2
dotty-ca11f55fdd906881e57188946d32f237117d4fa3.zip
Make Lazy-vals generated fields private.
-rw-r--r--src/dotty/tools/dotc/transform/LazyVals.scala7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/transform/LazyVals.scala b/src/dotty/tools/dotc/transform/LazyVals.scala
index 9972efc90..9f772ba6b 100644
--- a/src/dotty/tools/dotc/transform/LazyVals.scala
+++ b/src/dotty/tools/dotc/transform/LazyVals.scala
@@ -166,7 +166,10 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
val tpe = x.tpe.widen.resultType.widen
assert(!(x.mods is Flags.Mutable))
val containerName = ctx.freshName(x.name ++ StdNames.nme.LAZY_LOCAL).toTermName
- val containerSymbol = ctx.newSymbol(claz, containerName, (x.mods &~ containerFlagsMask | containerFlags).flags, tpe, coord = x.symbol.coord).enteredAfter(this)
+ val containerSymbol = ctx.newSymbol(claz, containerName,
+ x.symbol.flags &~ containerFlagsMask | containerFlags | Flags.Private,
+ tpe, coord = x.symbol.coord
+ ).enteredAfter(this)
val containerTree = ValDef(containerSymbol, initValue(tpe))
if (x.tpe.isNotNull && tpe <:< defn.ObjectType) { // can use 'null' value instead of flag
@@ -175,7 +178,7 @@ class LazyVals extends MiniPhaseTransform with IdentityDenotTransformer {
}
else {
val flagName = ctx.freshName(x.name ++ StdNames.nme.BITMAP_PREFIX).toTermName
- val flagSymbol = ctx.newSymbol(x.symbol.owner, flagName, containerFlags, defn.BooleanType)
+ val flagSymbol = ctx.newSymbol(x.symbol.owner, flagName, containerFlags | Flags.Private, defn.BooleanType).entered
val flag = ValDef(flagSymbol, Literal(Constants.Constant(false)))
val slowPath = DefDef(x.symbol.asTerm, mkNonThreadSafeDef(ref(containerSymbol), ref(flagSymbol), x.rhs))
Thicket(List(containerTree, flag, slowPath))