DIP25/DIP1000: My thoughts round 2
Patrick Schluter
Patrick.Schluter at bbox.fr
Wed Sep 5 18:09:52 UTC 2018
On Wednesday, 5 September 2018 at 01:06:47 UTC, Paul Backus wrote:
> On Tuesday, 4 September 2018 at 16:36:20 UTC, Nick Treleaven
> wrote:
>> My syntax for parameters that may get aliased to another
>> parameter is to write the parameter number that may escape it
>> in its scope attribute:
>>
>> On Sunday, 2 September 2018 at 05:14:58 UTC, Chris M. wrote:
>>> void betty(ref scope int*'a r, scope int*'a p) // okay it's
>>> not pretty
>>
>> void betty(ref scope int* r, scope(1) int* p);
>>
>> p is documented as (possibly) escaped in parameter 1.
>
> Would using parameter names instead of numbers work? As an
> unfamiliar reader, it wouldn't be clear at all to me what
> `scope(1)` meant, but `scope(r) int* p` would at least suggest
> that there's some connection between `p` and `r`.
It's indeed imho better as numbered parameters are a pita. Any
change is annoying and fragile. I cannot count how often in C I
had issues with annotations like __attribute__((nonnnul(5,9)))
and __attribute__((format(printf, 3, 4))) when I had to change
the parameters.
More information about the Digitalmars-d
mailing list