diff options
author | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-02-12 18:09:43 -0800 |
---|---|---|
committer | Adriaan Moors <adriaan.moors@typesafe.com> | 2013-02-12 18:09:43 -0800 |
commit | 466fc670a38836dfb81d75f72d46ddcaa12bc3bb (patch) | |
tree | 4c0d553d4d02f692892fda077cdd0cb985da9819 /src/compiler | |
parent | f51ed74aa3aa142c8aa9d5f9d03e0c244737f66e (diff) | |
parent | 6a7d793388628d9e8d20c59cc327843f33615db0 (diff) | |
download | scala-466fc670a38836dfb81d75f72d46ddcaa12bc3bb.tar.gz scala-466fc670a38836dfb81d75f72d46ddcaa12bc3bb.tar.bz2 scala-466fc670a38836dfb81d75f72d46ddcaa12bc3bb.zip |
Merge pull request #2115 from retronym/ticket/7091
SI-7091 Don't try to put a protected accessor in a package.
Diffstat (limited to 'src/compiler')
-rw-r--r-- | src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala index fb8a111da1..67639eb530 100644 --- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala +++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala @@ -67,7 +67,10 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT case t => t } acc setInfoAndEnter (tpe cloneInfo acc) - storeAccessorDefinition(clazz, DefDef(acc, EmptyTree)) + // Diagnostic for SI-7091 + if (!accDefs.contains(clazz)) + reporter.error(sel.pos, s"Internal error: unable to store accessor definition in ${clazz}. clazz.isPackage=${clazz.isPackage}. Accessor required for ${sel} (${showRaw(sel)})") + else storeAccessorDefinition(clazz, DefDef(acc, EmptyTree)) acc } @@ -288,6 +291,7 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT currentClass.isTrait && sym.isProtected && sym.enclClass != currentClass + && !sym.owner.isPackageClass // SI-7091 no accessor needed package owned (ie, top level) symbols && !sym.owner.isTrait && (sym.owner.enclosingPackageClass != currentClass.enclosingPackageClass) && (qual.symbol.info.member(sym.name) ne NoSymbol) |