These do compile:
```
void foo() @safe @nogc {}
void bar() @("uda") {}
```
According to the spec, only const, immutable, inout, return, shared, nothrow, pure and @property are allowed after the parameter list.
https://dlang.org/spec/grammar.html#MemberFunctionAttribute
These also compile:
```
@safe foo() {}
@("uda") foo() {}
@("uda") x = 3, y = 3;
```
`AtAttribute` is not in `StorageClass` (which is used in AutoDeclaration and AutoFuncDeclaration), so according to the spec these are not allowed.
https://dlang.org/spec/grammar.html#AutoFuncDeclarationhttps://dlang.org/spec/grammar.html#AutoDeclaration
I think adding AtAttribute to MemberFunctionAttribute and StorageClass would fix this but I haven't checked what the implementation exactly permits and disallows.