On Monday, 26 January 2015 at 11:39:23 UTC, Jonathan M Davis wrote:
immutable, inout, and deprecated all don't have @. So, most function attributes _don't_ have @ on them, and we just added @ to some of them, making things even _less_ consistent. In fact, priore to this, @safe, @trusted, @system, and @property were the _only_ function attributes with @ on them. So, if we really wanted to improve consistency IMHO, we'd get rid of @ from everything that's built-in and leave it for user-defined
attributes, but that would break existing code too.

I agree that you need to let "@" act as some kind of mnemonic and therefore assign meaning to it.

One meaning would be to only use "@" with attributes that do not affect computation, typing, overloading etc and use it only for safety-checks and optimization hints (like inlining).

Besides it would be easy to change the parser so that terms can be reused as symbols if the grammar stays sound. I think that is true for most function attributes anyway.

Reply via email to