www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 13954] New: (D1 only) Compiler allows implementing floating


          Issue ID: 13954
           Summary: (D1 only) Compiler allows implementing floating point
                    return method with a real return type
           Product: D
           Version: D1
          Hardware: x86_64
                OS: Linux
            Status: NEW
          Keywords: industry
          Severity: normal
          Priority: P1
         Component: DMD
          Assignee: nobody puremagic.com
          Reporter: andrej.mitrovich gmail.com

class A
    abstract public float get();

class C : A
    public real get() { return 0; }

void main ( )
    A a = new C;

    assert(a.get() == 0);

This assertion fails.

Note that the above should not compile. The equivalent D2 code is caught at

test.d(15): Error: cannot create instance of abstract class C 
test.d(15): function 'float get()' is not implemented

Jan 08 2015