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