On 8/25/2018 2:46 PM, David Nadlinger wrote:
On Saturday, 25 August 2018 at 20:52:06 UTC, Walter Bright wrote:
If I fix the bug, I break existing code, and apparently a substantial amount of existing code. What's your advice on how to proceed with this?

At least for the transition period, I'd have attributes only apply to the user-specified code and infer them for the actual full constructor. (We can still print a deprecation warning if they don't match.) —David

Inferring is not good enough, for example:

https://github.com/dlang/dmd/pull/6816#issuecomment-307972790

There the @safe constructor is calling a destructor that calls free(). It can't be inferred as @safe. Sure, we can do warnings and deprecations, but the user will sooner or later have to change his code, and Chris' code from 2009 is not going to compile without changes.

---

A further issue with inferring for destructors is that why do it for destructors and not other member functions? It's a good question, without obvious answers.

---

The larger issue here is there is no solution where someone's ox doesn't get gored. I have to make a judgement call on what is overall best for the future of D. And the ox gets inevitably gored.

Even C, probably the slowest moving major language, has these issues.

Reply via email to