Skip to content

Commit 357d5cc

Browse files
ClassfileParser: apply scala commit b2c67b3 (java8 default methods)
1 parent b49bba0 commit 357d5cc

File tree

2 files changed

+10
-0
lines changed

2 files changed

+10
-0
lines changed

src/dotty/tools/dotc/core/Flags.scala

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,6 +342,9 @@ object Flags {
342342
/** Symbol is a Java-style varargs method */
343343
final val JavaVarargs = termFlag(38, "<varargs>")
344344

345+
/** Symbol is a Java default method */
346+
final val DefaultMethod = termFlag(39, "<defaultmethod>")
347+
345348
// Flags following this one are not pickled
346349

347350
/** Denotation is in train of being loaded and completed, used to catch cyclic dependencies */

src/dotty/tools/dotc/core/pickling/ClassfileParser.scala

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -496,6 +496,13 @@ class ClassfileParser(
496496
case tpnme.ExceptionsATTR =>
497497
parseExceptions(attrLen)
498498

499+
case tpnme.CodeATTR =>
500+
if (sym.owner is Flags.Interface) {
501+
sym.setFlag(Flags.DefaultMethod)
502+
ctx.log(s"$sym in ${sym.owner} is a java8+ default method.")
503+
}
504+
in.skip(attrLen)
505+
499506
case _ =>
500507
}
501508
in.bp = end

0 commit comments

Comments
 (0)