Another idiom I wish were gone from phobos/druntime

Paulo Pinto via Digitalmars-d digitalmars-d at puremagic.com
Wed Feb 4 23:28:35 PST 2015


On Thursday, 5 February 2015 at 06:15:39 UTC, H. S. Teoh wrote:
> On Thu, Feb 05, 2015 at 05:42:57AM +0000, Meta via 
> Digitalmars-d wrote:
> [...]
>> I don't know about others (besides Beatophile, who religiously 
>> adheres
>> to writing contacts), but putting contracts on functions is a 
>> hassle.
>> I never do it unless I'm feeling particularly full of divine 
>> fervor.
>> It's a lot like making all variables that don't need to be 
>> changed
>> immutable (another thing which only Bearophile seems to do) or
>> properly documenting code. Strong optimization guarantees from
>> contracts would go a long way in convincing people to actually 
>> write
>> them (although I guess that's not what you want; Perhaps you 
>> changed
>> your mind). It's a chicken and egg problem.
>
> I do write contracts in my own code, though not as much as I 
> would've
> because (1) the syntax is far too verbose, (2) dmd makes a mess 
> of DbC
> by putting in-contracts in the callee rather than the caller, 
> causing
> severe limitations in real-life usage, and (3) so far 
> optimizations
> based on contracts (esp. via assert/assume, that Walter was so 
> insistent
> on) haven't materialized yet.
>
> But then again, I do like to document my code a lot too, so 
> maybe I'm
> just One Of Those People. *shrug* (I'm not as extreme as 
> bearophile in
> insisting on putting immutable everywhere, though. Not yet, 
> anyway. :-P)
>
>
> T

I miss the point about in.

DbC as presentend by Eiffel and adopted in .NET, Ada among 
others, the complete contract is on the  callee.

It doesn't make sense otherwise.


More information about the Digitalmars-d mailing list