https://issues.dlang.org/show_bug.cgi?id=24394
Issue ID: 24394 Summary: mutable array can be returned as string Product: D Version: D2 Hardware: x86 OS: Windows Status: NEW Severity: normal Priority: P1 Component: dmd Assignee: nob...@puremagic.com Reporter: fores...@nom.one Originally reported in the forum: https://forum.dlang.org/thread/gkoqjxixfiwftivjk...@forum.dlang.org I'm now reporting it here, since more experienced D users seem to agree it's a bug. I was surprised to find that this code compiles with no complaints: @safe: string test(ubyte[] arr) { import std.string; return arr.assumeUTF; // why does this compile? } void main() { import std.stdio; ubyte[] buf = ['g', 'o', 'o', 'd']; string dodgy = buf.test; // this string points to mutable data buf[] = ['b', 'a', 'd', '!']; writeln(typeof(dodgy).stringof); writeln(dodgy); } --