https://github.com/dlang/dmd/pull/8493 It's a small change, but it illustrates an important concept - separating code into functions that calculate things (which can be made pure) and functions that modify state. Doing this more generally will significantly reduce the cognitive complexity of the compiler.