[Issue 6857] Precondition contract checks should be statically bound.
d-bugmail at puremagic.com
d-bugmail at puremagic.com
Wed May 2 16:26:04 PDT 2012
http://d.puremagic.com/issues/show_bug.cgi?id=6857
--- Comment #10 from Walter Bright <bugzilla at 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: -------
More information about the Digitalmars-d-bugs
mailing list