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