diff options
author | Martin Odersky <odersky@gmail.com> | 2015-05-01 18:29:23 +0200 |
---|---|---|
committer | Martin Odersky <odersky@gmail.com> | 2015-05-01 18:30:11 +0200 |
commit | a263b5f3aaabe96e7ad238cb18e8f9b98d287ffc (patch) | |
tree | e9b11d3deb16721192f14fae253e8f151ec70536 /src | |
parent | d5df72a6cbedf740ee76290fb9d7dbcc7678411f (diff) | |
download | dotty-a263b5f3aaabe96e7ad238cb18e8f9b98d287ffc.tar.gz dotty-a263b5f3aaabe96e7ad238cb18e8f9b98d287ffc.tar.bz2 dotty-a263b5f3aaabe96e7ad238cb18e8f9b98d287ffc.zip |
Make sure mixin accessors are not private.
Logic moved from RefChecks to Mixin; implementation
is now by name expansion instead of setting NotJavaPrivate
flag.
Diffstat (limited to 'src')
-rw-r--r-- | src/dotty/tools/dotc/transform/Mixin.scala | 2 | ||||
-rw-r--r-- | src/dotty/tools/dotc/typer/RefChecks.scala | 4 |
2 files changed, 2 insertions, 4 deletions
diff --git a/src/dotty/tools/dotc/transform/Mixin.scala b/src/dotty/tools/dotc/transform/Mixin.scala index e20468899..de0c0c801 100644 --- a/src/dotty/tools/dotc/transform/Mixin.scala +++ b/src/dotty/tools/dotc/transform/Mixin.scala @@ -72,7 +72,7 @@ class Mixin extends MiniPhaseTransform with SymTransformer { thisTransform => override def transformSym(sym: SymDenotation)(implicit ctx: Context): SymDenotation = if (sym.is(Accessor, butNot = Deferred) && sym.owner.is(Trait)) - sym.copySymDenotation(initFlags = sym.flags | Deferred) + sym.copySymDenotation(initFlags = sym.flags | Deferred).ensureNotPrivate else sym diff --git a/src/dotty/tools/dotc/typer/RefChecks.scala b/src/dotty/tools/dotc/typer/RefChecks.scala index 93cd412f2..e7ada1254 100644 --- a/src/dotty/tools/dotc/typer/RefChecks.scala +++ b/src/dotty/tools/dotc/typer/RefChecks.scala @@ -741,11 +741,9 @@ class RefChecks extends MiniPhase with SymTransformer { thisTransformer => */ override def transformSym(d: SymDenotation)(implicit ctx: Context) = { def mustBePublicInValueClass = d.isPrimaryConstructor || d.is(ParamAccessor) - def mustBePublicInTrait = !d.is(Method) || d.isSetter || d.is(ParamAccessor) def mustBePublic = { val cls = d.owner - (isDerivedValueClass(cls) && mustBePublicInValueClass || - cls.is(Trait) && mustBePublicInTrait) + (isDerivedValueClass(cls) && mustBePublicInValueClass } if ((d is PrivateTerm) && mustBePublic) notPrivate(d) else d } |