The following runs out of file handles on both Windows and Linux: import std.stdio; void main() { // Assumes you have a file called "foo.txt" laying around. If you don't, // create one. while(1) { File("foo.txt"); } } The following while loop body also does: auto lines = File("foo.txt").byLine(); The following does not: auto handle = File("foo.txt"); Marking as major because it silently breaks code in subtle ways. I wrote several small programs that relied on reference counting to free the file handle, which seemed to work fine until one day I made them use a lot more file handles than they usually do.
Apparently, this is caused by bug 3516, rather than being a bug in Phobos per se.
Resolved by fixing temporary destruction.