On Thursday, 15 December 2016 at 10:50:39 UTC, ketmar wrote:
On Thursday, 15 December 2016 at 07:13:18 UTC, 01010100b wrote:
And this particular change would probably not incur any breakage of existing code, unless people happen to be using UDAs with the same name as function attribute keywords.

...which is impossible, 'cause keyword can be used as identifier.

Ah yes, true. Then we have

1. Allow @ on all function attribute keywords.
2. Allow @ on all keywords.

Neither of these is a breaking change, however future attributes which might get added will be a breaking change each.

And we have

3. Remove the @ and make keywords like nogc etc.
4. Add a set of strings of "language defined attributes" prefixed by # and put the existing ones in there.

Both of these are breaking. 3. is the "prettiest" but would give huge issues with possible future attributes. 4. is the most general and future-looking, so that future attributes will never require a breaking change.

Reply via email to