www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13985] New: Wrong code when using "super" to call final

https://issues.dlang.org/show_bug.cgi?id=13985

          Issue ID: 13985
           Summary: Wrong code when using "super" to call final interface
                    method
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Keywords: wrong-code
          Severity: critical
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: thecybershadow gmail.com

/////// test.d ///////
interface I
{
    void m1();
    void m2();
    void m3();

    final void mf()
    {
        m3();
    }
}

class C1 : I
{
    void m1() {}
    void m2() {}
    void m3() {}
}

class C2 : C1
{
    void ml()
    {
        super.mf();
    }
}

void main()
{
    auto l = new C2();
    l.ml();
}
//////////////////////

This program throws the exception:

object.Exception src\object_.d(100): need opCmp for class test.C2

--
Jan 15 2015