Deprecating things without a replacement
Robert Clipsham
robert at octarineparrot.com
Sun Jul 17 08:28:14 PDT 2011
I've just begun updating my code to work with 2.054 and noticed that
quite a few things have been deprecated - some without a decent
replacement. Could the phobos team not make a habit of this please?
Example:
Before:
----
foreach (file; listDir(".", "*.d") ~ listDir("./foo/", "*.c"))
{
// Do something
}
----
After (sorry about the awkward indentation):
----
void doSomething(string file)
{
// Do something
}
foreach (string file;
filter!`endsWith(a.name,".d"))`(
dirEntries(".",SpanMode.depth))
{
doSomething(file);
}
foreach (string file;
filter!`endsWith(a.name,".c")`(
dirEntries("./foo/",SpanMode.depth))
{
doSomething(file);
}
----
Also note that you can't use dirEntries() ~ dirEntries() or
chain(dirEntries(), dirEntries()) as DirIterator is not a range.
If things in phobos are going to be deprecated, could you make sure that
a decent replacement for *all* use cases is in place before hand?
It would also be nice to add into the documentation how to use the
replacement functions to the same effect - it took me forever to figure
out how to replace listDir with dirEntries.
--
Robert
http://octarineparrot.com/
More information about the Digitalmars-d
mailing list