On Monday, 9 September 2019 at 09:14:08 UTC, Andre Pany wrote:
Hi,

I noticed, that I cannot throw from the lambda expression:
  Error: expression expected, not throw
but have to use the longer syntax () {throw new Exception();}

---
void foo(void function() e){}

void main()
{
    foo(
        () => throw new Exception()
    );
}
---

The shorter lambda syntax would be more readable in my case.
Is there a reason why it isn't allowed or should I create an
enhancement request?

Kind regards
André

Well, the shorthand syntax "=>" implies a return, but you can only return an expression and throw is a statement.

https://dlang.org/spec/expression.html#lambdas

Reply via email to