aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMartin Odersky <odersky@gmail.com>2013-02-15 16:54:04 +0100
committerMartin Odersky <odersky@gmail.com>2013-02-15 16:54:04 +0100
commit927b26d9bcf2eb0d9efc8f3a2a657d6615fe13eb (patch)
treea5f5ebee36bb6e83e3961479e59899c6fd97d3af
parent2771341790093d5f30b9cccea98d191dd39fcb1c (diff)
downloaddotty-927b26d9bcf2eb0d9efc8f3a2a657d6615fe13eb.tar.gz
dotty-927b26d9bcf2eb0d9efc8f3a2a657d6615fe13eb.tar.bz2
dotty-927b26d9bcf2eb0d9efc8f3a2a657d6615fe13eb.zip
Optimization: don't generate member symbols for private members in a Java classfile.
-rw-r--r--src/dotty/tools/dotc/core/pickling/ClassfileParser.scala5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala
index e238a2ded..7904ed4d3 100644
--- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala
+++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala
@@ -147,14 +147,15 @@ class ClassfileParser(
}
}
- def parseMember(method: Boolean) = {
+ def parseMember(method: Boolean): Unit = {
val start = new Offset(in.bp)
val jflags = in.nextChar
val sflags =
if (method) FlagTranslation.methodFlags(jflags)
else FlagTranslation.fieldFlags(jflags)
val name = pool.getName(in.nextChar)
- cctx.newLazySymbol(getOwner(jflags), name, sflags, memberCompleter, start).entered
+ if (!(sflags is Flags.Private) || name == nme.CONSTRUCTOR || settings.optimise.value)
+ cctx.newLazySymbol(getOwner(jflags), name, sflags, memberCompleter, start).entered
}
object memberCompleter extends SymCompleter {