On 2014-06-25 01:32, Marco Nembrini wrote:

Wouldn't an attribute like @nogc only be a keyword for attribute
symbols, while something like nothrow is a keyword for everything?

I guess that's true.

E.g. using @nogc means I can't define my own "nogc" UDA but I can have a
function or variable named nogc, while I can't have a function named
"nogc". Being a "attribute keyword" seems a much smaller restriction on
user code.

I guess so.

If what I wrote above is correct, why not declare existing
compiler-attributes "attribute keywords", and then allow a mix of them:


@(nothrow, public, const, "my_custom_attribute") void foo ();

Yeah, if the built-in attributes were implemented as UDA's, defined in object.d, then there would be less of a problem. Then one could always use fully qualified symbol names to disambiguate the attributes.

--
/Jacob Carlborg

Reply via email to