assume, assert, enforce, @safe

bearophile via Digitalmars-d digitalmars-d at puremagic.com
Sat Aug 2 00:16:22 PDT 2014


Daniel Murphy:

> What do you think about 
> https://github.com/D-Programming-Language/dmd/pull/3799 ?
>
> Basically, turn obviously invalid failing function calls into 
> compile-time errors.  IMO this pushes in-contracts well out of 
> the useless area.

I like compile-time tests, you can see it from several of my last 
posts, but:
1) It's better to be able to express general tests using CTFE, 
instead of covering a limited but growing list of cases. The 
general solution needs only half page of text to be explained in 
a next version of the TDPL, while your proposal will need a 
growing list of cases;
2) For reasons Walter has explained elsewhere, those tests need 
to be explicit, even syntactically-wise (and Walter has a strong 
opinion on this, so it's unlikely you will change his mind. And I 
agree with him on this).

So far I've seen only one proposal to do this (the Enum 
Preconditions), and it too has some limits (caused by compilation 
units, that can be removed turning the Enum Preconditions into 
things handled like templates).

Bye,
bearophile


More information about the Digitalmars-d mailing list