Invariants are useless the way they are defined

Andrei Alexandrescu SeeWebsiteForEmail at erdani.org
Mon Aug 26 11:01:55 PDT 2013


On 8/26/13 9:47 AM, H. S. Teoh wrote:
> 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.

You can attach contracts to an interface. What else would need to be done?

Andrei


More information about the Digitalmars-d mailing list