DIP 1003: remove `body` as a keyword
Basile B. via Digitalmars-d-announce
digitalmars-d-announce at puremagic.com
Sat Dec 10 05:49:09 PST 2016
On Monday, 28 November 2016 at 02:17:20 UTC, Dicebot wrote:
> On 11/24/2016 05:29 PM, WM.H wrote:
>> On Saturday, 19 November 2016 at 21:16:15 UTC, Dicebot wrote:
>>> DIP 1003 is merged to the queue and open for public informal
>>> feedback.
>>>
>>> PR: https://github.com/dlang/DIPs/pull/48
>>> Initial merged document:
>>> https://github.com/dlang/DIPs/blob/master/DIPs/DIP1003.md
>>>
>>> If you want the change to be approved and have ideas how to
>>> improve it to better match on
>>> https://github.com/dlang/DIPs/blob/master/GUIDELINES.md and
>>> existing published reviews - please submit new PR with
>>> editorial and ping original author.
>>
>> This DIP fixes the problem for "body" but not for the other
>> keywords. After all the problem may exist for other keywords.
>> Was a new pragma considered ? For example an identifier alias.
>>
>> pragma(idAlias, "body", "body_" )
>
> AFAIU, the point of this DIP is that "body" is standing out
> from other keywords being used only in one very specific
> context and being a very common english word at the same time.
> Your proposal has a completely different (and much more
> drastic) approach.
Yes. But while it's clear that "body" is a keyword that's less
related to programming languages than the others (i.e more usable
as identifier), it's not actually that mad to imagine a generic
approach. For example Object Pascal has such a feature:
http://wiki.freepascal.org/FPC_New_Features_2.6.0#Support_for_.26-escaping_of_keywords
which is not well known, as I've myself discovered this just 3
minutes ago.
In D there would be the "#" token that's not really used, which
could serve to escape keywords, while still considering them as
identifier when it's needed, e.g
struct Body{}
Body #body;
writeln("'", #body.stringof, "'");
would output: 'body'
More information about the Digitalmars-d-announce
mailing list