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.