From 540479ad682fae4278f15e9eb7d4a17f084e21b2 Mon Sep 17 00:00:00 2001 From: Martin Odersky Date: Sun, 9 Nov 2014 13:21:06 +0100 Subject: Clean up code relating to interfaces. Previous implementation was confused about the meaning of interface (with default methods or without?). Now instead of Interface/JavaInterface we have PureInterface - all members are abstract methods NoInits - all members are methods --- src/dotty/tools/dotc/core/pickling/ClassfileParser.scala | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) (limited to 'src/dotty/tools/dotc/core/pickling/ClassfileParser.scala') diff --git a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala index 67f825502..f2a5e4171 100644 --- a/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala +++ b/src/dotty/tools/dotc/core/pickling/ClassfileParser.scala @@ -503,8 +503,9 @@ class ClassfileParser( parseExceptions(attrLen) case tpnme.CodeATTR => - if (sym.owner is Flags.Interface) { - sym.setFlag(Flags.DefaultMethod) + if (sym.owner is Flags.JavaTrait) { + sym.resetFlag(Flags.Deferred) + sym.owner.resetFlag(Flags.PureInterface) ctx.log(s"$sym in ${sym.owner} is a java8+ default method.") } in.skip(attrLen) -- cgit v1.2.3