proposal: short => rewrite for function declarations

claptrap clap at trap.com
Sat Oct 10 10:18:15 UTC 2020


On Friday, 9 October 2020 at 14:44:25 UTC, Adam D. Ruppe wrote:
> After a brief chat yesterday, I slapped this together:
>
> https://github.com/dlang/dmd/pull/11833
>
> In short, in a function declaration, it rewrites `=> ...;` into 
> `{ return ...; }`
>
> One benefit is shorter property accessors:
>
>     private int _x = 34;
>     @property x() => _x;
>     @property x(int v) => _x = v;
>
> But it also works basically anywhere
>
>     bool isNull() => this is null;
>     auto identity(T)(T a) => a;
>     @property y() in(true) => _x; // contracts still work too
>
> So it just extends the existing lambda shorthand to full 
> declarations too.
>
> See more in the PR description and the test case there.

 From the recent discussions I got the impression that needless 
syntax sugar shouldn't be added any more. To get new features in 
it needs to be something that cant be done with existing language 
features, or it needs to fix something.

So doesn't this just add more "stuff" for no meaningful benefit?

I couldnt care less about

@property x() => _x;

vs

@property x() { return -x; }

cause the important thing to me is that my code is simple, 
readable, expressive, i dont care about saving 7 chars on a one 
liner.




More information about the Digitalmars-d mailing list