www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.bugs - [Issue 20635] New: std.file.write is not UFCS friendly


          Issue ID: 20635
           Summary: std.file.write is not UFCS friendly
           Product: D
           Version: D2
          Hardware: All
                OS: All
            Status: NEW
          Severity: normal
          Priority: P1
         Component: phobos
          Assignee: nobody puremagic.com
          Reporter: b2.temp gmx.com

the filename is the first parameter. It would be more judicious if it was the

e.g, you cant do that for now
string doStuff1(string);
string doStuff2(string);

    .map!(a => tuple(a.name, readText(a.name))
    .each!(a => a[1].doStuff1()
                    .write(a[0])); // oops

it can happen very easily, even on a simple stuff like


The choice of the order is very poor.

Both cases presented here happened for real. At some point if you don't take
care you finish with a folder containing files with cryptic names and each of
them contains a path. Hilarious.

As UFCS mimics the beahior of member functions we can compare `std.file.write`
to something like `MemoryStream.writeToFile()` hence the "pseudo" `this` must
be for the data, not the name.

Mar 04 2020