summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLukas Rytz <lukas.rytz@epfl.ch>2010-12-03 18:46:53 +0000
committerLukas Rytz <lukas.rytz@epfl.ch>2010-12-03 18:46:53 +0000
commit3a783937bf97a9180e303da90cea8077f75d3e9b (patch)
tree741da315cfe89ac75b2a299ab9c031d6795c28b7 /src
parent843efeab1b41d5ba69aaee35498004849a58ae84 (diff)
downloadscala-3a783937bf97a9180e303da90cea8077f75d3e9b.tar.gz
scala-3a783937bf97a9180e303da90cea8077f75d3e9b.tar.bz2
scala-3a783937bf97a9180e303da90cea8077f75d3e9b.zip
close #3946.
Diffstat (limited to 'src')
-rw-r--r--src/compiler/scala/tools/ant/Scaladoc.scala2
-rw-r--r--src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala5
-rw-r--r--src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala8
-rw-r--r--src/swing/scala/swing/RichWindow.scala2
4 files changed, 14 insertions, 3 deletions
diff --git a/src/compiler/scala/tools/ant/Scaladoc.scala b/src/compiler/scala/tools/ant/Scaladoc.scala
index 3d96b959f5..427846fa33 100644
--- a/src/compiler/scala/tools/ant/Scaladoc.scala
+++ b/src/compiler/scala/tools/ant/Scaladoc.scala
@@ -385,7 +385,7 @@ class Scaladoc extends MatchingTask {
/** This is forwarding method to circumvent bug #281 in Scala 2. Remove when
* bug has been corrected.
*/
- override protected def getDirectoryScanner(baseDir: java.io.File) =
+ override def getDirectoryScanner(baseDir: java.io.File) =
super.getDirectoryScanner(baseDir)
/** Transforms a string name into a file relative to the provided base
diff --git a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
index 109de180a4..b3eced4402 100644
--- a/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
+++ b/src/compiler/scala/tools/nsc/symtab/classfile/ClassfileParser.scala
@@ -1323,6 +1323,11 @@ abstract class ClassfileParser {
// apparently occurs when processing v45.3 bytecode.
if (sym.toplevelClass != NoSymbol)
sym.privateWithin = sym.toplevelClass.owner
+
+ // protected in java means package protected. #3946
+ if ((jflags & JAVA_ACC_PROTECTED) != 0)
+ if (sym.toplevelClass != NoSymbol)
+ sym.privateWithin = sym.toplevelClass.owner
}
@inline final private def isPrivate(flags: Int) =
diff --git a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
index 09a0f4cfe4..c1a44dba93 100644
--- a/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
+++ b/src/compiler/scala/tools/nsc/typechecker/SuperAccessors.scala
@@ -417,13 +417,19 @@ abstract class SuperAccessors extends transform.Transform with transform.TypingT
def accessibleThroughSubclassing =
validCurrentOwner && clazz.thisSym.isSubClass(sym.owner) && !clazz.isTrait
+ def packageAccessBoundry(sym: Symbol) = {
+ val b = sym.accessBoundary(sym.owner)
+ if (b.isPackageClass) b
+ else b.enclosingPackageClass
+ }
+
val isCandidate = (
sym.isProtected
&& sym.isJavaDefined
&& !sym.definedInPackage
&& !accessibleThroughSubclassing
&& (sym.owner.enclosingPackageClass != currentOwner.enclosingPackageClass)
- && (sym.owner.enclosingPackageClass == sym.accessBoundary(sym.owner).enclosingPackageClass)
+ && (sym.owner.enclosingPackageClass == packageAccessBoundry(sym))
)
val host = hostForAccessorOf(sym, clazz)
def isSelfType = (host.thisSym != host) && {
diff --git a/src/swing/scala/swing/RichWindow.scala b/src/swing/scala/swing/RichWindow.scala
index 10e396247e..dcad382a33 100644
--- a/src/swing/scala/swing/RichWindow.scala
+++ b/src/swing/scala/swing/RichWindow.scala
@@ -78,7 +78,7 @@ class Frame extends RichWindow {
override lazy val peer: JFrame with InterfaceMixin = new JFrame with InterfaceMixin with SuperMixin
protected trait SuperMixin extends JFrame {
- override protected def processWindowEvent(e: java.awt.event.WindowEvent) {
+ override def processWindowEvent(e: java.awt.event.WindowEvent) {
super.processWindowEvent(e)
if (e.getID() == java.awt.event.WindowEvent.WINDOW_CLOSING)
closeOperation()