On Tuesday, 27 January 2015 at 00:05:17 UTC, Jonathan Marler wrote:
Haha, ok, sorry for being too abstract.

I think a safe way to implement my proposal would be to do what c++ did and only allow non-keyword function attributes to omit the '@' symbol if they appear after the function signature:

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)

If the initial proposal is accepted by people, then we can talk about the other examples, but let's focus on the proposal before focusing on sub-proposals.

Alright, good. However... I'm still against it. Firstly, in my first comment in the current thread,

http://forum.dlang.org/post/uimpnhiweuitnnbeq...@forum.dlang.org

...I made a list of considerations, among which:

3. Singularity of usage also matters. There should only be one
way to mark a given attribute, either with or without `@`.

This alone puts me at next to zero for your proposal in terms of benefit. It will strike people as a strange and unnecessary exception to the way to mark their attributes, for the sake of a slight beautification of only those cases where the attributes come after the signature. Consider me an old-fashioned "a keyword is a keyword is a keyword" kind of guy. Yes, there are outliers (C++, D, exit, success, etc.), but I don't see why that list should be expanded, as it is nicely contained, IMO.

Reply via email to