Re: Why this compiles?

2023-11-26 Thread Adam D Ruppe via Digitalmars-d-learn
On Sunday, 26 November 2023 at 21:45:21 UTC, Antonio wrote: In this example, ```a``` and ```b``` vars are not of the same type and don't implement the same interface. **why ```assert(a==b)``` compiles?** They're both subclasses of Object and inherit a generic opEquals from that base.

Why this compiles?

2023-11-26 Thread Antonio via Digitalmars-d-learn
In this example, ```a``` and ```b``` vars are not of the same type and don't implement the same interface. **why ```assert(a==b)``` compiles?** ```d interface IOpt(T) { bool opEquals(const IOpt!T) const @safe pure; } class None(T) : IOpt!T { bool opEquals(const IOpt!T other) const