http://d.puremagic.com/issues/show_bug.cgi?id=6857
--- Comment #10 from Walter Bright <bugzi...@digitalmars.com> 2012-05-02 16:27:15 PDT --- I suggest checking Bertrand Meyer's book Object-Oriented Software Construction, which is the definitive reference on this. It's theoretically sound. I did not invent the design, I implemented it. The fundamental nature of 'in' contracts is that they are "loosened" on derivation. If an instance of B is passed to parameter A, then if either the contract for A or the contract for B passes, then it passes. It is NOT necessary for the A contract to pass. This is exactly what you're seeing in the example. If an instance of A is passed, then the contract for A must pass. It isn't a bug, it is the way it is supposed to work. Nor am I ignoring it - I'm trying to explain it. -- Configure issuemail: http://d.puremagic.com/issues/userprefs.cgi?tab=email ------- You are receiving this mail because: -------