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