Editions Ideas
Richard Andrew Cattermole (Rikki)
richard at cattermole.co.nz
Wed Dec 17 16:07:26 UTC 2025
Here is my initial list, it will likely change between now and
next month.
I was going to produce this earlier to get people on the right
idea, but alas this needed writing up in a way that isn't just a
cue card to myself!
I want to note, that the first edition is mostly focused on
breakage not new features.
- We have both throw expressions and throw statements. We do not
need throw statements if we have throw expressions.
- Case statements should only accept expressions that resolve to
a value, not variables: https://github.com/dlang/dmd/pull/14829
- Disallow symbols being called ``init``. Being able to do this
breaks code.
- Disallow catching anything other than Exception hierarchy (no
Error/Throwable) unless try statement is whitelisted with pragma
- Being able to catch Throwable/Error should be left to code
like schedulers it is not normal @system code that needs this and
outside of these use cases it should never be done.
- Class constructor inheritance when none are provided
- Does not count constructors of the form: this(params...) =>
super(stuff here)
- Derived from Swift, without adding new special variants.
- Remove the ability to cast a class to ``void*`` to get at its
instance pointer.
- Add ``.instanceptr`` property instead.
- The cast is broken if you add an ``opCast``, which practically
means that you should pretty much never use it.
- Turn on -preview=fixaliasthis
- Turn on: rvaluerefparam
- Known bugs:
- https://github.com/dlang/dmd/issues/22078
- Turn on: nosharedaccess
- Known bugs:
- https://github.com/dlang/dmd/issues/20496
- Turn on fixImmutableConv
- Known bugs:
- https://github.com/dlang/dmd/issues/18246
- https://github.com/dlang/dmd/issues/20401 (forestix, not
original code)
- https://github.com/dlang/dmd/issues/19910
- Turn on systemVariables
- Known bugs:
- https://github.com/dlang/dmd/issues/18195
- Turn on inclusiveincontracts
- Known bugs:
- https://github.com/dlang/dmd/issues/17646
- Turn on fieldwise
- Turn on bitfields
More information about the Digitalmars-d
mailing list