checkedint call removal

Dicebot via Digitalmars-d digitalmars-d at puremagic.com
Tue Jul 29 03:13:43 PDT 2014


On Tuesday, 29 July 2014 at 07:31:26 UTC, Walter Bright wrote:
> You can choose to disable assertions with a switch, or not. 
> Having a choice up to you doesn't make it useless.

Yes I know what are options to make it work. I don't know how to 
make it work "in a good style". This is not just D problem - I 
feel like something is missing in the design by contract idea, 
something that actually can make it robust enough to be used 
without "oh crap" moments.

> Also, assertions are not for validating user input.

This is one of problems. When writing library function you don't 
exactly know if input is going to be user input. Use enforces - 
and it won't be possible to optimize away redundant checks. Use 
assertions and issue may slip uncaught.

It feels like for contracts to really work some good 
implementation of red-green code zones is necessarily, to be able 
to distinguish user input call paths from internal ones during 
compilation time.


More information about the Digitalmars-d mailing list