DIP 1003: remove `body` as a keyword
meppl via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Nov 24 07:08:02 PST 2016
Indentation syntax
If we have an optional indentation syntax one day, those
anonymous looking scopes behind functions may become weird things.
int div(int a, int b)
in { assert(b != 0); }
{
return a / b;
}
indentation:
int div( int a, int b)
in:
assert( b != 0)
:
return a / b
And i like two proposals of this thread here who are not part of
the DIP:
Kagamin's proposal to just use a shorter keyword than "body" or
"function".
> int div(int a, int b)
> in { assert(b != 0); }
> do
> {
> return a / b;
> }
Sönke Ludwigs suggestion:
> Really nice would be if "in" and "out" would then also take a
> general statement instead of just a block statement, so that a
> syntax like this would become possible for simple contracts:
>
> void foo(int a, int b)
> in assert(0 <= a && a < b);
> out(ret) assert(ret < b);
> {
> return b - 1 - a;
> }
More information about the Digitalmars-d-announce
mailing list