Community
Participate
Working Groups
The following code shows what I believe is an incorrect error - the base class AImpl is made concrete by the aspect Af, but the compilation of BImpl does not recognize this fact. This problem is for version 1.1rc1 and is not seen in 1.0.6. // --------------------- // A.java package a_intf; public interface A { A f(); } // --------------------- // AImpl.java package a_impl; import a_intf.A; public class AImpl implements A { } // --------------------- // Af.java package a_impl; import a_intf.A; aspect Af { public A AImpl.f() { System.out.println( "f called" ); return null; } } // --------------------- // B.java package b_intf; import a_intf.A; public interface B extends A { B g(); } // --------------------- // BImpl.java package b_impl; import a_impl.AImpl; import b_intf.B; public class BImpl extends AImpl implements B { public B g() { System.out.println( "g called" ); return null; } } // Compiler Error: // BImpl.java:7 Class must implement the inherited abstract method a_intf.A.f()
you're correct, this was a bug and was easy to reproduce with your test below this is now fixed in the current tree with test in bugs/interInherit