As reported by deadalnix: ```d struct S { void delegate() dg; } void main() { int x = 42; immutable S s = { dg: () { x++; } }; s.dg(); import std.stdio; writeln(x); } ``` This still compiles and run and mutates a variable through an immutable pointer. This variable could be shared too because immutable is safe to share. May be related to https://issues.dlang.org/show_bug.cgi?id=16095 and https://issues.dlang.org/show_bug.cgi?id=1983
@WalterBright created dlang/dmd pull request #14164 "fix Issue 23134 - Mutate variable through immutable pointer" fixing this issue: - fix Issue 23134 - Mutate variable through immutable pointer https://github.com/dlang/dmd/pull/14164