On 2013-11-07 02:04:36 +0000, Adam D. Ruppe said:
On Thursday, 7 November 2013 at 00:13:49 UTC, Shammah Chancellor wrote:
My understanding is that @ attributes were for used-defined behavior only.
It is all a historical thing... at first, all new things were done as
keywords. Then around the time @safe came around, they were changing
their minds and new things became @keywords. Then, some time after
that, UDAs came around and used the @ syntax.
But the reason it is pure and @safe instead of @pure @safe or pure and
safe is just historical accident - they were introduced in that
particular phase, and now the worry is changing it will annoyingly
break too much code for very little real benefit.
There's an easy solution to that. Put warnings on pure, nothrow, and
immutable ( in the function tag context) and add @pure, @nothrow,
@immutable etc. Fix it going forward and eventually remove it.