digitalmars.D - Lambda return type bug?
- Lodovico Giaretta (12/12) May 02 2016 Hi,
- Andrea Fontana (5/17) May 02 2016 Wrong syntax!
- Lodovico Giaretta (4/24) May 02 2016 Lol... Noob error...
Hi, I think this code should work, but the compiler does not agree. Am I missing something? void main() { alias funType = void function(int x); funType fun = (x) => { assert(x); }; // cannot return non-void from void function fun(0); } From the language reference I understand that assert shoud return void, so I can't see how this code is wrong.
May 02 2016
On Monday, 2 May 2016 at 08:09:47 UTC, Lodovico Giaretta wrote:Hi, I think this code should work, but the compiler does not agree. Am I missing something? void main() { alias funType = void function(int x); funType fun = (x) => { assert(x); }; // cannot return non-void from void function fun(0); } From the language reference I understand that assert shoud return void, so I can't see how this code is wrong.Wrong syntax! You mean (x) { assert(x); } or (x) => assert(x)
May 02 2016
On Monday, 2 May 2016 at 08:18:45 UTC, Andrea Fontana wrote:On Monday, 2 May 2016 at 08:09:47 UTC, Lodovico Giaretta wrote:Lol... Noob error... Got confused by the two different ways of writing functions... Thank you very much (and sorry for wasting some of your time...)Hi, I think this code should work, but the compiler does not agree. Am I missing something? void main() { alias funType = void function(int x); funType fun = (x) => { assert(x); }; // cannot return non-void from void function fun(0); } From the language reference I understand that assert shoud return void, so I can't see how this code is wrong.Wrong syntax! You mean (x) { assert(x); } or (x) => assert(x)
May 02 2016