Invariants are useless the way they are defined

H. S. Teoh hsteoh at quickfur.ath.cx
Mon Aug 26 09:47:09 PDT 2013


On Mon, Aug 26, 2013 at 06:16:25PM +0200, Timon Gehr wrote:
> On 08/26/2013 08:49 AM, deadalnix wrote:
> >
> >We simply need to add invariant check in the caller, not the callee,
> >and not introduce them if the caller is itself subject to invariant
> >insertion when called.
> 
> The issue with this is that the invariant is not part of the public
> interface.

The fact that contracts are not part of the public interface greatly
limits the usefulness of DbC in D. If they *were* part of the public
interface, there'd be more options to improve it.

But this isn't the first time this is brought up, and it still seems no
solution is in sight. :-(


T

-- 
Nothing in the world is more distasteful to a man than to take the path
that leads to himself. -- Herman Hesse


More information about the Digitalmars-d mailing list