On 21.11.2016 17:55, Piotrek wrote:
On Saturday, 19 November 2016 at 21:16:15 UTC, Dicebot wrote:
DIP 1003 is merged to the queue and open for public informal feedback.

PR: https://github.com/dlang/DIPs/pull/48
Initial merged document:
https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md

If you want the change to be approved and have ideas how to improve it
to better match on
https://github.com/dlang/DIPs/blob/master/GUIDELINES.md and existing
published reviews - please submit new PR with editorial and ping
original author.

How about this alternative ("in" and "out" blocks inside function body):

void foo(int a)
{
    in
    {
        assert (a > 0);
    }
    out
    {
        (ret) assert(ret > 0);
    }

    // body code

    return a;
}


or for one-liners:

void foo(int a)
{
    in assert (a > 0);
    out (ret) assert(ret > 0);

    // body code

    return a;
}

BR,
Piotrek

Won't work. Contracts are part of the function signature. That's the point.

Reply via email to