[Issue 4088] opEquals not called on interfaces

d-bugmail at puremagic.com d-bugmail at puremagic.com
Mon Aug 8 05:47:09 PDT 2011


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



--- Comment #9 from Steven Schveighoffer <schveiguy at yahoo.com> 2011-08-08 05:47:06 PDT ---
(In reply to comment #8)
> Issues that need to be resolved:
> 
> 1. what should happen if this is called with a COM object?

Compiler error.

> 2. how does an opEquals defined in an interface interact with the
> object.opEquals?

If the notion of COM interfaces is specialized, then standard interfaces do not
need to define opEquals, it's assumed that any standard interface (not C++ or
COM) derives from Object, and implicit dynamic casting to Object to do opEquals
should work.

> 3. a forced cast, unlike an implicit cast, is a blunt instrument that can do a
> lot more than simply cast an interface to its base class. If the arguments are
> other types, what are the conseqences of this forced cast?

An implicit cast to Object would be the best remedy.  However, the issue of
dynamic casting and blunt casting being conflated would be a good issue to
solve too.

-- 
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