On Mon, 03 Aug 2009 15:53:03 +0400, Michiel Helvensteijn
<[email protected]> wrote:
I think this is much more elegant:
# int foo(int a) {
# in {
# assert(a>2);
# }
#
# return a-1;
# }
I have to disagree. That suggests that 'in' is a scope within the body,
which would have access to its local variables. Of course, it
shouldn't.
If you make 'in' clauses 'pure' (which they are, conceptually), it works
fine.
But 'in' still needs read-access to the actual parameters and every
visible
symbol in a scope shallower than that of the function.
I agree with Pete, I think that's a greatly superior syntax to what we
have now.
Then I assume you still want to restrict the precondition to being the
first
element in the body? Because putting it in there suggests that it may
appear anywhere a statement can.
Why not?