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