import testlib.util.*; // TODO: the output have a "missing return statement"? public class DeepOverrideBug { public static interface I { @Odd String interfaceMethod(); String abstractMethod(); } public abstract static class A { public abstract @Odd String abstractMethod(); public abstract String interfaceMethod(); } public abstract static class B extends A implements I {} public static class C extends B { //:: error: (override.return.invalid) public String interfaceMethod() { // should emit error return null; } //:: error: (override.return.invalid) public String abstractMethod() { // should emit error return null; } } }