On Wednesday, 14 February 2024 at 11:56:29 UTC, Forest wrote:
On Wednesday, 14 February 2024 at 10:57:42 UTC, RazvanN wrote:
This has already been fixed, you just need to use
-preview=fixImmutableConv. This was put behind a preview flag
as it introduces a breaking change.
I just tried that flag on run.dlang.org, and although it fixes
the case I posted earlier, it doesn't fix this one:
```d
string test(const(ubyte)[] arr)
{
import std.string;
return arr.assumeUTF;
}
```
Shouldn't this be rejected as well?
Indeed, that should be rejected as well, otherwise you can modify
immutable table. This code currently happily compiles:
```d
string test(const(ubyte)[] arr)
{
import std.string;
return arr.assumeUTF;
}
void main()
{
import std.stdio;
ubyte[] arr = ['a', 'b', 'c'];
auto t = test(arr);
writeln(t);
arr[0] = 'x';
writeln(t);
}
```
And prints:
```
abc
xbc
```
However, this seems to be a different issue.