[Issue 3396] Call of abstract method not detected by semantic check

via Digitalmars-d-bugs digitalmars-d-bugs at puremagic.com
Fri Jul 18 10:57:42 PDT 2014


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

Stewart Gordon <smjg at iname.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
             Status|RESOLVED                    |REOPENED
         Resolution|INVALID                     |---

--- Comment #4 from Stewart Gordon <smjg at iname.com> ---
(In reply to Denis Shelomovskij from comment #3)
> This is a documented and intended behavior. According to [1]:
>> Functions declared as abstract can still have function bodies.  

But A.M has no function body.  So what's the relevance?

>> This is so that even though they must be overridden, they can 
>> still provide ‘base class functionality.’

But no base class functionality has been provided.  As such, the compiler
cannot resolve the call to super.M and therefore should error.

> It also maches C++ behavior with respect to pure virtual functions.

What exactly does the C++ standard say about this?

That said, is C++ behaviour relevant?  D is not C++.

--


More information about the Digitalmars-d-bugs mailing list