accept @pure @nothrow @return attributes

Zach the Mystic via Digitalmars-d digitalmars-d at puremagic.com
Wed Jan 28 12:12:00 PST 2015


On Wednesday, 28 January 2015 at 19:07:59 UTC, Jonathan Marler 
wrote:
> On Wednesday, 28 January 2015 at 18:54:29 UTC, Zach the Mystic 
> wrote:
>> I think a keyword is a keyword is a keyword. If it's a keyword 
>> to the right it should be one everywhere. How is somethign 
>> that's a built-in attribute one place and an identifier in 
>> another not context sensitive. Walter said that `exit`, `C++`, 
>> i.e. `scope(exit)`, `extern (C++)` etc. were never keywords, 
>> but I disagree. They are indeed context sensitive keywords. 
>> They have wisely been kept to a minimum. They are just 
>> confusing to reason about, except in the most strictly 
>> confined places, where they are now. I think that's why 
>> they're out of the question. They have wisely been kept to a 
>> minimum.
>
> This is actually a valid argument against my proposal.  Thank 
> you! lol.  I don't agree with it but at least it's valid :)  
> Your reasoning depends on how you define a keyword.  You seem 
> to be defining a keyword in terms of an identifier that is 
> recognized by the compiler to have a special meaning.  I define 
> a keyword as a word that the lexer recognizes as a keyword 
> token.
>
> I see what you mean by saying that the word is a function 
> attribute in one place and an identifier in another.  But 
> what's wrong with that?  if I define a struct named 
> mystruct...I could declare one like this:
>
> mystruct mystruct;

It's utterly confusing is the problem. I would consider it a 
great disservice to all D programmers to allow this. Just because 
you can doesn't mean you should. Walter has emphasize there is 
absolutely no shortage of valid words. There is however, a 
shortage of what a programmer can keep organized in his head. 
That's the shortage you should prioritize, sir. I'm not sure how 
to emphasize this anymore. We may just have to agree to disagree.


More information about the Digitalmars-d mailing list