accept @pure @nothrow @return attributes

Jonathan Marler via Digitalmars-d digitalmars-d at puremagic.com
Wed Jan 28 11:33:30 PST 2015


On Wednesday, 28 January 2015 at 19:29:25 UTC, Daniel Kozak wrote:
>> I would think the reason would be it could make the grammar 
>> ambiguous.  That's why I proposed it only be valid on the 
>> right hand side of the function to guarantee it doesn't 
>> introduce any ambiguity.  Other then that, I don't see any 
>> reason why it's a bad thing.  It doesn't make the syntax more 
>> complicated, it doesn't maker it harder to parse, I just don't 
>> see why its bad.
>
> Thats not possible:
>
> @safe {
>     void some func() // now valid
> }
>
> safe:
>     void some func() // now valid
>
>
>
> safe {
>     void some func() // could not be valid
> }
>
> safe:
>     void some func() // could not be valid
>
>
> So you need more places where keyword needs to be contextual 
> keyword
>
> And this is a path I am not sure we want to go.

None of those cases would valid.  Non-Keyword attributes without 
a '@' must be on the right hand side of the function parameters.

void some func(); // some is not a keyword, so it is invalid


More information about the Digitalmars-d mailing list