Improve "Improve Contract Syntax" DIP 1009

Nick Treleaven nick at geany.org
Fri Nov 3 17:37:30 UTC 2017


On Friday, 3 November 2017 at 02:32:41 UTC, Jonathan M Davis 
wrote:
> Personally, I hate how verbose they are, but my solution is 
> just not to use them. And IMHO, the only place that they add 
> real value is in classes, where their success or failure can be 
> &&ed or ||ed based on how that should work with inheritance. 
> For struct member functions or free functions, where no 
> inheritance is involved, they add considerably less value.

One advantage is documentation of expected pre-conditions. With 
the proposed block-less syntax, people would presumably use them 
more. Then there would be a bigger motivation for some compilers 
to insert the contracts at the call site, and use this 
information for optimization on the caller side, or to point out 
logical inconsistencies in the calling code (e.g. detecting 
invalid null arguments).


More information about the Digitalmars-d mailing list