Discussion Thread: DIP 1043--Shortened Method Syntax--Community Review Round 1
Tejas
notrealemail at gmail.com
Fri Feb 4 17:18:54 UTC 2022
On Friday, 4 February 2022 at 14:46:39 UTC, Paul Backus wrote:
> On Friday, 4 February 2022 at 12:40:32 UTC, max haughton wrote:
>> On Friday, 4 February 2022 at 11:21:48 UTC, Elronnd wrote:
>>> It would be nice to permit something like this:
>>>
>>> struct Foo {
>>> this(int x, string y) { ... }
>>> this(string y) => this(0, y);
>>> }
>>>
>>> Currently this fails because constructors are not allowed to
>>> return anything. But that should not be part of this DIP,
>>> probably.
>>
>> The implementation as done by Adam is done in the parser but
>> if I move it down the stack a bit this is probably doable.
>
> Please don't. Having `=> expr` be simple syntax sugar for `{
> return expr; }` is consistent and easy to understand. We don't
> need to add special cases just to save a *single character*:
>
> this(string y) => this(0, y);
> this(string y) { this(0, y); }
Actually, the following compiles:
```d
void funcc()
{
}
void func()
{
return funcc();
}
void main()
{
func();
}
```
So maybe the fact that `this(string y) => this(0, y);` doesn't
compile is a compiler bug? Constructors return `void` after all,
no?
More information about the Digitalmars-d
mailing list