On 1/22/23 3:43 AM, A moo person wrote:
>On Friday, 20 January 2023 at 14:53:49 UTC, Steven Schveighoffer wrote:
>My proposal was basically to have a @called
attribute that indicates the function delegate may be called inside the function, meaning the attributes of the call should reflect the attributes of the parameter.
I really hate that the proposal to the problem of too many attributes in the language is "hey lets add another attribute"... like really?
The problem of "too many attributes" is not what is causing your project to fail to build. It is a lack of expressiveness in the language that forces mir ion to make a choice -- enforce the most restrictive attributes for templates and delegates, or remove all of them and force the user not to care about purity/safety/gc.
It shouldn't have to make that choice. A library should only put restrictions on its users that it requires. Otherwise, the user should be free to pick unsafety, safety, gc or nogc, etc.
Ideally, D should be able to do inference of everything, but separate compilation makes this impossible. So we have attributes to designate what the declaration has.
-Steve