On 03/03/2018 12:22 AM, ag0aep6g wrote:
But what about `tupleof`? It ignores `private` and it's allowed in
`@safe` code:
----
[...]
----
Now that I've sent this, I find the affected Phobos type I couldn't
pinpoint. It's `File`:
----
void main() @safe
{
import std.stdio: File, writeln;
auto hosts = File("/etc/hosts");
{
auto hosts_copy = hosts;
hosts_copy.tupleof[0].refs = 1; /* uh-oh */
}
auto self = File(__FILE__);
writeln(hosts.rawRead(new char[1000]));
/* Reads from __FILE__ instead of /etc/hosts. */
}
----
https://run.dlang.io/is/1QSsUk