aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-21 12:41:38 +0100
committerSamuel Gruetter <samuel.gruetter@epfl.ch>2014-03-21 12:41:38 +0100
commit357d5ccd88a11db8cb11ebccf4675fc34c133134 (patch)
tree29f7da05a485783b071938c5b14f7e71f7f2479d /src
parentb49bba08633c216175095effab71dac2a133a0c3 (diff)
downloaddotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.tar.gz
dotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.tar.bz2
dotty-357d5ccd88a11db8cb11ebccf4675fc34c133134.zip
ClassfileParser: apply scala commit b2c67b3 (java8 default methods)
Diffstat (limited to 'src')
-rw-r--r--src/dotty/tools/dotc/core/Flags.scala3
-rw-r--r--src/dotty/tools/dotc/core/pickling/ClassfileParser.scala7
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