Project: AspectJ
Bug 35725 Inter type declaration to base class not seen by derived class
Reported: 2003-03-26 15:16:24 | Status: resolved fixed

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()

Files changed in fix:
tests/bugs/interInherit/a_impl/AImpl.java tests/bugs/interInherit/a_impl/Af.java tests/bugs/interInherit/a_intf/A.java tests/bugs/interInherit/b_impl/BImpl.java tests/bugs/interInherit/b_intf/B.java