The state of contract programming in D

Alex Rønne Petersen xtzgzorex at gmail.com
Sun Mar 4 20:26:30 PST 2012


Hi,

What with D's contract programming getting publicity, I think it's high 
time we made the implementation match the documentation (and TDPL).

Just a 'few' contract-related issues:

* http://d.puremagic.com/issues/show_bug.cgi?id=6857
* http://d.puremagic.com/issues/show_bug.cgi?id=7584
* http://d.puremagic.com/issues/show_bug.cgi?id=6549
* http://d.puremagic.com/issues/show_bug.cgi?id=6856
* http://d.puremagic.com/issues/show_bug.cgi?id=7337
* http://d.puremagic.com/issues/show_bug.cgi?id=5039
* http://d.puremagic.com/issues/show_bug.cgi?id=7517
* http://d.puremagic.com/issues/show_bug.cgi?id=519

More subtle issues:

* http://d.puremagic.com/issues/show_bug.cgi?id=2350
* http://d.puremagic.com/issues/show_bug.cgi?id=4995

Syntactical issues/enhancements:

* http://d.puremagic.com/issues/show_bug.cgi?id=6415
* http://d.puremagic.com/issues/show_bug.cgi?id=5038
* http://d.puremagic.com/issues/show_bug.cgi?id=6453

The issues I personally see as most important are related to contract 
inheritance and contracts on functions without a body.

Additionally, I think that dropping the need for parentheses on 
invariant declarations would be a good idea, such that it feels more 
like unittest declarations. Furthermore, the ability to declare multiple 
invariants is essential for mixins and meta-programming in general.

(Many of the issues have pull requests pending review.)

Thoughts? I think we need to figure out most of these before 2.059...

-- 
- Alex


More information about the Digitalmars-d mailing list