summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorPaul Phillips <paulp@improving.org>2009-03-31 17:21:02 +0000
committerPaul Phillips <paulp@improving.org>2009-03-31 17:21:02 +0000
commit16d4b1d76a6388c0dea5ee118c4f94a0f4b15fc5 (patch)
tree2b3fd6df6c3d6df7c1fce1a03d9671a8504fc35c /src
parenta464ed4c3a8cddc200e38e8882026eb1ca5de7d9 (diff)
downloadscala-16d4b1d76a6388c0dea5ee118c4f94a0f4b15fc5.tar.gz
scala-16d4b1d76a6388c0dea5ee118c4f94a0f4b15fc5.tar.bz2
scala-16d4b1d76a6388c0dea5ee118c4f94a0f4b15fc5.zip
A new fix for #1240 which might actually meet t...
A new fix for #1240 which might actually meet the definition of "fix", and also fixes #1840.
Diffstat (limited to 'src')
-rwxr-xr-xsrc/compiler/scala/tools/nsc/javac/JavaParsers.scala13
1 files changed, 8 insertions, 5 deletions
diff --git a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
index c3288db37a..b9c1383c76 100755
--- a/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
+++ b/src/compiler/scala/tools/nsc/javac/JavaParsers.scala
@@ -392,21 +392,24 @@ trait JavaParsers extends JavaScanners {
if (inInterface) nme.EMPTY.toTypeName else thisPackageName
while (true) {
- if (List(PUBLIC, PROTECTED, PRIVATE) contains in.token) defaultAccess = false
+ // if any explicit access modifier is present, we set privateWithin
+ // to the empty package so the flag is correctly interpreted.
+ if (List(PUBLIC, PROTECTED, PRIVATE) contains in.token) {
+ defaultAccess = false
+ privateWithin = nme.EMPTY.toTypeName
+ }
+
in.token match {
case AT if (in.lookaheadToken != INTERFACE) =>
in.nextToken
annotation()
case PUBLIC =>
- privateWithin = nme.EMPTY.toTypeName
in.nextToken
case PROTECTED =>
flags |= Flags.PROTECTED
- //privateWithin = thisPackageName
in.nextToken
case PRIVATE =>
flags |= Flags.PRIVATE
- privateWithin = nme.EMPTY.toTypeName
in.nextToken
case STATIC =>
flags |= Flags.STATIC
@@ -429,7 +432,7 @@ trait JavaParsers extends JavaScanners {
// but then many cases like pos5/t1176 fail because scala code
// with no package cannot access java code with no package.
if (defaultAccess && !isEmptyPkg)
- flags |= Flags.LOCAL // package private
+ flags |= Flags.PROTECTED // package private
return Modifiers(flags, privateWithin)
}