1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
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;
}
}
}
|