import testlib.util.*;

public class DeepOverrideAbstract {

    public static interface I {
        @Odd String interfaceMethod();
    }

    public abstract static class A {
        public abstract @Odd String abstractMethod();
    }

    public abstract static class B extends A implements I {}

    public static class C extends B {
        public @Odd String interfaceMethod() {
            return null;
        }
        // :: error: (override.return.invalid)
        public String abstractMethod() {
            return "";
        }
    }
}
