diff options
author | Samuel Gruetter <samuel.gruetter@epfl.ch> | 2014-03-21 12:41:38 +0100 |
---|---|---|
committer | Samuel Gruetter <samuel.gruetter@epfl.ch> | 2014-03-21 12:41:38 +0100 |
commit | 357d5ccd88a11db8cb11ebccf4675fc34c133134 (patch) | |
tree | 29f7da05a485783b071938c5b14f7e71f7f2479d /src/dotty | |
parent | b49bba08633c216175095effab71dac2a133a0c3 (diff) | |
download | dotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.tar.gz dotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.tar.bz2 dotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.zip |
ClassfileParser: apply scala commit b2c67b3 (java8 default methods)
Diffstat (limited to 'src/dotty')
-rw-r--r-- | src/dotty/tools/dotc/core/Flags.scala | 3 | ||||
-rw-r--r-- | src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | 7 |
2 files changed, 10 insertions, 0 deletions
diff --git a/src/dotty/tools/dotc/core/Flags.scala b/src/dotty/tools/dotc/core/Flags.scala index b9e901735..68125f73e 100644 --- a/src/dotty/tools/dotc/core/Flags.scala +++ b/src/dotty/tools/dotc/core/Flags.scala @@ -342,6 +342,9 @@ object Flags { /** Symbol is a Java-style varargs method */ final val JavaVarargs = termFlag(38, "<varargs>") + /** Symbol is a Java default method */ + final val DefaultMethod = termFlag(39, "<defaultmethod>") + // Flags following this one are not pickled /** Denotation is in train of being loaded and completed, used to catch cyclic dependencies */ diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala index a7620bd9f..bde723c9c 100644 --- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala +++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala @@ -496,6 +496,13 @@ class ClassfileParser( case tpnme.ExceptionsATTR => parseExceptions(attrLen) + case tpnme.CodeATTR => + if (sym.owner is Flags.Interface) { + sym.setFlag(Flags.DefaultMethod) + ctx.log(s"$sym in ${sym.owner} is a java8+ default method.") + } + in.skip(attrLen) + case _ => } in.bp = end |