[Issue 4435] Multiple-inheritance of Interfaces results in final/static method/function hijacking

d-bugmail at puremagic.com d-bugmail at puremagic.com
Wed Jul 7 10:45:00 PDT 2010


http://d.puremagic.com/issues/show_bug.cgi?id=4435


Jonathan M Davis <jmdavisProg at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |jmdavisProg at gmail.com


--- Comment #1 from Jonathan M Davis <jmdavisProg at gmail.com> 2010-07-07 10:44:57 PDT ---
Per TDPL, you should have to call these with the syntax c1.Alive.isDead() and
c1.Dead.isDead() and c1.isDead() is disallowed. So, obviously the current
version of dmd doesn't match TDPL in that respect.

Also, I should point out that per TDPL, to call either of them as isDead
without parens like you did would require the functions to be marked with
@property, otherwise you would have to have parens. DMD doesn't actually
require that yet. It would, however, raise the question of what to do in the
case where one of the two interfaces had isDead() declared as a property while
the other declared it as a non-property function. Would isDead call the
property version and isDead() call the non-property version, or would both be
disallowed?

Regardless, it is a bit bizarre to allow interfaces to have properties when
they can't have member variables, since properties emulate public member
variables. But I'm not sure that that's really a problem so much as just a bit
weird.

-- 
Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list