strange behavior of by-value function arguments in postcondition

Andrzej K. akrzemi1 at gmail.com
Tue Aug 31 12:45:29 UTC 2021


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.
>
> If the asserts don't pass then the function has a bug.
>
> Assert statements are never for the user and always for the 
> maintainer.

Yup. This explanation is compatible with what the compiler does.

What puzzles me now is that if it is for implementer only, why 
should it be the part of the function signature (as opposed to 
the function body).


More information about the Digitalmars-d mailing list