On Tuesday, 13 December 2016 at 22:40:47 UTC, 01010100b wrote:
So why not let all function attributes which are keywords also be allowed to be used with a "@" prefixed?
Because it just creates yet another way to make one person's code look drastically different from another with no real gain? It would result in yet more style arguments without solving anything. And it wouldn't even reduce the number of quesions about it, because then we'd get a bunch of questions about stuff like what the difference between pure and @pure is.
Also, would you even allow @ on stuff like static or const? Those can be used elsewhere in places where nothing has @ on it, creating yet more inconsistencies if you allowed it in those places, and if you allowed @ when they were used on functions and not elsewhere, that's yet another inconsistency.
The _only_ way to eliminate all of the inconsistencies with @ is to get rid of it from everywhere but UDAs, and turn all of those built-in attributes into full-blown keywords, and we're simply not going to do that. Any other solution is just moving the inconsistencies around.
I say that when dealing with the built-in attributes, just treat @ like another letter in the keyword, learn it, and move on.
- Jonathan M Davis
