On 22.06.2017 22:43, jmh530 wrote:
On Thursday, 22 June 2017 at 20:19:59 UTC, Timon Gehr wrote:
On 22.06.2017 22:02, jmh530 wrote:
The whole double parentheses is a bit ugly to me. Is there any
problem with
out(return > 0)
out(a => {
void foo()out(b => a == b){ return a; }
return foo()>0;
}());
I'm confused. The compiler should know that these returns are inside
lambdas.
The point is that two results are in scope, so you cannot call both of
them 'return'. It's a corner case, but you asked for any problems.
Also, foo should not return void
Oops. That's a typo. Fixed version:
out(a => {
int foo()out(b => a == b){ return a; }
return foo()>0;
}())
and I'm not sure what the
extra set of parentheses are for at the end.
That's calling the lambda.
Version that works today:
int bar()out(a){
int foo()out(b){
assert(a==b);
}body{
return a;
}
assert(foo()>0);
}body{
return 2;
}