Creating immutable arrays in @safe code
Dennis
dkorpel at gmail.com
Sat Jul 17 11:05:11 UTC 2021
On Saturday, 17 July 2021 at 05:44:24 UTC, ag0aep6g wrote:
> I tried doing that, but `-preview=dip1000` causes trouble. This
> fails:
> (...)
> I'm not sure what's going on.
I'm not completely caught up, but from what I see, pure and
immutable have a history of issues:
[Issue 11503 - Type system breaking caused by implicit conversion
for the value returned from pure
function](https://issues.dlang.org/show_bug.cgi?id=11503)
[Issue 11909 - Struct members and static arrays break pure
function escape analysis (immutability
violation)](https://issues.dlang.org/show_bug.cgi?id=11909)
[Issue 15660 - break immutable with pure function and mutable
reference params](https://issues.dlang.org/show_bug.cgi?id=15660)
There used to be a complex `isReturnIsolated` check, but the [fix
for issue 15660](https://github.com/dlang/dmd/pull/8048) reduced
it to a check 'is the function strongly `pure`' which means
'parameters are values or immutable'. To reduce code breakage,
the 'strong pure' requirement is only needed with -dip1000, which
is why your example doesn't work with it.
More information about the Digitalmars-d-learn
mailing list