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