accept @pure @nothrow @return attributes
Jonathan Marler via Digitalmars-d
digitalmars-d at puremagic.com
Wed Jan 28 10:37:46 PST 2015
On Wednesday, 28 January 2015 at 18:27:34 UTC, Andrei
Alexandrescu wrote:
> On 1/28/15 10:19 AM, Jonathan Marler wrote:
>> On Wednesday, 28 January 2015 at 17:52:56 UTC, Mike wrote:
>>> On Wednesday, 28 January 2015 at 17:41:54 UTC, Jonathan
>>> Marler wrote:
>>>
>>>> PLUS, this would be very simple to implement!
>>>
>>> Then I recommend you submit a pull request.
>>>
>>> Mike
>>
>> I would but Walter said no. I'm certain he misunderstood my
>> proposal
>> and I tried to explain it to him but I couldn't get him to
>> address it.
>
> Was that the proposal leading to this state of affairs (quoting
> from your post on 2015/01/26 16:05 PST?
>
>> Here's what would change
>> -----------------------------------------------------------------
>> void myfunc() nogc; // VALID (Only if this proposal is
>> accepted)
>> void myfunc() safe; // VALID (Only if this proposal is
>> accepted)
>>
>>
>> Here's what WOULD NOT change
>> -----------------------------------------------------------------
>> nogc myfunc(); // STILL INVALID: invalid unless it can be
>> verified
>> // that this wouldn't result in
>> ambiguity
>> // in the grammar
>> void myfunc() @nogc; // STILL VALID (no change)
>> @nogc myfunc(); // STILL VALID (no change)
>
>
> Andrei
You can follow this thread:
http://forum.dlang.org/post/fxbqqecgqdhrepxsjnep@forum.dlang.org
I explained my proposal 3 or 4 times but each time Walter seemed
to be misunderstanding my proposal saying it was going to create
"context-sensitive" tokens and so he would immediately dismiss
it. I tried to understand what he meant by "context-sensitive"
tokens because my proposal didn't have anything to do with them
(at least my definition of them), but even after he defined them
my proposal clearly does not create them.
Walter "[A context-sensitive token is] A keyword in one context
and an identifier in another"
Anyway, I'll restate my proposal again:
1. Modify the SYNTAX of function to allow it to be decorated with
IDENTIFIER tokens on the right hand side
void foo() x; // valid SYNTAX (note: has not semantic meaning)
void foo() safe; // valid SYNTAX and valid SEMANTICS
2. Modify the code that interprets the syntax tree to recognize
these identifiers as function attributes.
A simple solution that would allow us to standardize where we put
the function attributes and allow us to remove the '@' character
from all non-keyword function attributes. Seems like a
no-brainer to me.
More information about the Digitalmars-d
mailing list