On 2009-08-04 02:50:23 -0400, grauzone <n...@example.net> said:

Michel Fortin wrote:
Also, I wonder why we need braces everywhere in contracts. I'd like it if I could write:


int test(int i)
in
    assert(i > 1);
out (z)
    assert(z < 0);
do
    return -i + 1;

Just bikeshedding a bit around... why not make it even simpler, and just leave away the body/do completely? That would finally be a syntax I'd be happy with. It wouldn't destroy the normal code layout too, because in/out contracts are fully additional syntax.

int test(int i)
   in assert(i > 1);
   out(z) assert(z < 0);
{ return -i + 1; }

That could work if the in and out blocks were alwasy one-statement long. That's hardly the case, and so you'd have two blocks following each other which I find a little strange:

int test(int i)
in {
        assert(i > 1);
}
out (z) {
        assert(z < 0);
}
{
        return -i + 1;
}

Nothing catastrophic, but in my opinion it reads better with a keyword in front of the last opening brace.


--
Michel Fortin
michel.for...@michelf.com
http://michelf.com/

Reply via email to