On 11/7/2012 4:03 PM, Andrei Alexandrescu wrote:
On 11/7/12 10:24 PM, Walter Bright wrote:
On 11/7/2012 11:40 AM, Jonas Drewsen wrote:
I we were to allow for @foobar style UDA then "safe" would have to be
a reserved
keyword somehow. Otherwise I do not know what this would mean:

struct safe { }
@safe void foobar() { }

Yes, I agree this is a significant problem.


I think it's solvable. The basic approach would be to plop types "safe",
"nothrow" etc. in object.di and then let them just behave like all other 
arguments.

Consider that if we do that, then someone will need to disambiguate with:

   @object.safe

which is ambiguous:

   @a.b .c x = 3;

or is it:

   @a .b.c x = 3;

?

Another problem is it pushes off recognition of @safe from the parser to the semantic analyzer. This has unknown forward reference complications.

Reply via email to