Output contract's arguements

Artur Skawina art.08.09 at gmail.com
Thu Sep 19 04:06:57 PDT 2013


On 09/19/13 12:58, Peter Alexander wrote:
> On Thursday, 19 September 2013 at 10:44:32 UTC, monarch_dodra wrote:
>> On Thursday, 19 September 2013 at 10:38:37 UTC, Joseph Rushton Wakeling wrote:
>>> On 18/09/13 14:11, monarch_dodra wrote:
>>>> IMO, this is wrong. When calling a function with an out contract, the arguments
>>>> should *also* be passed to the out contract directly. "out" should not be
>>>> expected to run on the body's "sloppy seconds".
>>>
>>> I'm not sure I understand your objection here.  As I understood it the whole point of an "out" contract was to check the state of everything _after the function has exited_.
>>
>> Exactly.
>>
>> If the function has already exited, then why is the state of he arguments modified? I though pass by value meant that the function operated on its own copy?
> 
> What exactly would you like this to do? v only exists inside the body of the function. There is no v after the function exits. If you check v in the output contract then you are checking the final value of v.

That "final value of v" is not part of any contract, it's just a private
local.

artur


More information about the Digitalmars-d mailing list