class Test {
    interface I {
        int m();
    }

    static abstract class Parent {
        abstract int foo() ;
    }

    static abstract class Child extends Parent {
        abstract int foo() ;
        void test() {
            I s = <error descr="Abstract method 'foo' cannot be accessed directly">super::foo</error>;
            I s1 = this::foo;

            Parent sup = null;
            I s2 = sup::foo;
        }
    }
}