strange behavior of by-value function arguments in postcondition

bauss jj_1337 at live.dk
Wed Sep 1 06:14:27 UTC 2021


On Tuesday, 31 August 2021 at 16:04:17 UTC, Meta wrote:
> On Tuesday, 31 August 2021 at 12:39:59 UTC, bauss wrote:
>> On Tuesday, 31 August 2021 at 12:35:54 UTC, Andrzej K. wrote:
>>>
>>> I guess, the question here is, who are the postconditions 
>>> for? Are they for the caller (to guarantee something that the 
>>> caller understands)? Or are they for the callee (in order to 
>>> automatically inject assertions into function body)? If it is 
>>> the latter, then the current semantics are fine.
>>
>> The postconditions are for the maintainer to ensure the 
>> function actually works as expected.
>
> This is not true and is a complete misunderstanding of Design 
> by Contract and what function contracts are for.
>
>> If the asserts don't pass then the function has a bug.
>>
>> Assert statements are never for the user and always for the 
>> maintainer.
>
> _Assert_ statements are for the maintainer,

Pre/post conditions _are_ assert statements tho. User validation 
should be done using exceptions, not asserts.




More information about the Digitalmars-d mailing list