DIP 1020--Named Parameters--Community Review Round 2

rikki cattermole rikki at cattermole.co.nz
Wed Sep 11 14:33:37 UTC 2019

On 11/09/2019 5:53 PM, Lionello Lunesu wrote:
> On Tuesday, 10 September 2019 at 09:06:23 UTC, Mike Parker wrote:
>> This is the feedback thread for the second round of Community Review 
>> for DIP 1020, "Named Parameters":
>> https://github.com/dlang/DIPs/blob/c723d8f4e3ac2d5bcaf8cdff87e1507f09669ca6/DIPs/DIP1020.md 
> I can't seem to find the rationale for the necessity of a parameter 
> syntax? As a library writer, when would I annotate a parameter with 
> `@named`? Does adding `@named` *require* naming the parameter? The DIP 
> notes a new trait to find named vs unnamed parameters, but is that the 
> *reason* for the new syntax or a handy side effect? Couldn't the regular 
> UDA trait be used (or extended) to find `@named` or any other UDA for 
> that matter?

A named parameter must include a name yes. Good catch.

The trait(s) is listed under "Supporting Syntax". It supports the rest 
of the DIP and while useful I wouldn't call it a handy side effect or a 
reason for design choices were made.

Its a simple way that does not require much in the way of changes to the 
language or would take very long to implement to get the named parameter 
names on a template (for e.g. functions that is a side effect for 
consistency reasons).

> If I assume there's a good reason for having this opt-in for parameters, 
> wouldn't this then require a lot of churn for library writers, with 
> diffs adding just `@named` to parameters and no other code changes?

Nobody is forced to use it.

I would recommend to incrementally add it, as the API designs allow for 
it, and not just add it because it exists.

More information about the Digitalmars-d mailing list