DIP 1003: remove `body` as a keyword
Basile B. via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Thu Dec 15 13:31:56 PST 2016
On Thursday, 15 December 2016 at 21:19:30 UTC, Meta wrote:
> On Thursday, 15 December 2016 at 15:31:40 UTC, Basile B. wrote:
>> On Sunday, 11 December 2016 at 20:27:36 UTC, Meta wrote:
>>> On Sunday, 11 December 2016 at 11:33:40 UTC, Basile B. wrote:
>>>> DIP 1003 is faddish. It would really be better to have a
>>>> system that would allow any keyword to be used as
>>>> identifier. An escape system is the key.
>>>
>>> It would also guarantee that the DIP would not be accepted.
>>> With this DIP I aimed
>>
>> Sorry in a previous post there's been a confusion from my
>> part, I thought the author was "Cauterite".
>>
>>> for the smallest possible change that would alleviate the
>>> problem of not being able to use `body` as a symbol name,
>>> hoping that the smallness of the problem and ease of
>>> implementation would make it much more likely to be accepted.
>>
>> I won't insist too much but to be clear, the escape solution
>> is incredibly simple to implement (7 SLOC !). I've decided to
>> go further in order to demonstrate it:
>>
>> https://github.com/dlang/dmd/pull/6324
>
> I saw your PR but I don't really agree that it's a good
> solution. If you have to preface the symbol with # then you
> might as well just use a trailing underscore, like "body_".
No, there are 2 differences.
- 1: even if in the source you write #body, the identifier, as
known by the compiler, is really just "body", like shown in the
test that uses `pragma(identifier)`. For example a serializer
would write "body" without any kind of processing (unlike what 's
to be done using the basic underscore solution).
- 2: the underscore is a valid identifier char, # is not so you
cannot distinguish a keyword suffixed with an underscore because
it might be intentional, i.e part of the identifier.
More information about the Digitalmars-d-announce
mailing list