When 2.099 was released std.experimental.checkedint
became std.checkedint
.
https://dlang.org/changelog/2.099.0.html
I'm happy for things to move out of std.experimental
but I would love to see an improved process around it to prevent problems for users.
Changes like this can break tooling as well as libraries that need to support multiple versions of D.
For libraries published to dub repo it's worth having a fix like this to work around the issue:
// https://dlang.org/changelog/2.099.0.html#checkedint
static if (__VERSION__ >= 2099)
import std.checkedint; // no longer experimental
else
import std.experimental.checkedint; // support older D front ends
but for tooling such as the Intellij plugin it's little more annoying (currently).
It would be really helpful if, when moving things out from std.experimental
, that both the new and old import paths would work for some time as an overlap. Ideally with the older import path generating a deprecation warning during compile. It's frequent breaking changes like this that have always hindered me from using D in the workplace.