On Tuesday, 29 July 2025 at 23:18:18 UTC, Brother Bill wrote:
Your changes do work, but at the cost of making i NOT deeply
immutable: no assignment, no changing any elements, no
appending, no setting length.
if you insit on the type id suggest this code then
```d
import std.stdio;
immutable int[] i;
shared static this() {
writeln("In shared static this()");
int[] i_;
i_~=43;
foreach(j;0..10){
i_~=j;
}
i = i_.dup;
}
void main()
{
writeln("In main()");
writeln("i: ", i);
}
```
---
this error message is ugly for a newer one; is this a regression?
Programming in d is sorta spec tier
```d
2.101.2: Failure with output:
-----
/path/to/dmd.linux/dmd2/linux/bin64/../../src/druntime/import/core/internal/array/appending.d(49):
Error: cannot modify `immutable` expression `px`
onlineapp.d(6): Error: template instance
`core.internal.array.appending._d_arrayappendcTXImpl!(immutable(string), immutable(char))` error instantiating
-----
2.102.2 to 2.105.3: Failure with output:
-----
/path/to/dmd.linux/dmd2/linux/bin64/../../src/druntime/import/core/internal/array/appending.d(47):
Error: cannot modify `immutable` expression `px`
onlineapp.d(6): Error: template instance
`core.internal.array.appending._d_arrayappendcTXImpl!(immutable(string), immutable(char))` error instantiating
-----
Since 2.106.1: Failure with output:
-----
/path/to/dmd.linux/dmd2/linux/bin64/../../src/druntime/import/core/internal/array/appending.d(42):
Error: cannot modify `immutable` expression `px`
onlineapp.d(6): Error: template instance
`core.internal.array.appending._d_arrayappendcTX!(immutable(string), immutable(char))` error instantiating
```