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'