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?

It does operate on its copy.

You modified the copy inside the function. The value at the call site is not modified.

By the way, the is to be expected in Eiffel, Ada and .NET contracts.

--
Paulo

Reply via email to