On Saturday, 11 January 2014 at 18:43:39 UTC, John Colvin wrote: > > I don't know about the details of what is/isn't legal here, but > the only reason the compiler accepts it is because filename is > marked as pure. It is legal exactly because function is marked as pure. Result of pure function is implicitly convertible to immutable.