Why does the example on page 8 of TDPL work without importing std.algorithm for splitter?

Bryce Watkins bwatkinsnz at gmail.com
Tue Jan 4 09:50:26 PST 2011


On 4/01/2011 9:26 p.m., Lars T. Kyllingstad wrote:
> On Mon, 03 Jan 2011 17:18:34 -0600, Ellery Newcomer wrote:
>
>> If you're importing some other phobos module, I would guess an instance
>> of this bug: http://d.puremagic.com/issues/show_bug.cgi?id=314
>>
>> On 01/03/2011 10:56 AM, Bryce Watkins wrote:
>>> However when I use splitter in my code it works without having imported
>>> std.algorithm.
>
> That's right.  std.string does a public selective import of startsWith()
> and endsWith() from std.algorithm, and bug 314 causes the whole module to
> be imported publically.
>
> 314 is a huge, gaping hole in the module system.  AFAIK, it's a high-
> priority bug, but also one that is very difficult to fix for some reason.
>
> -Lars

Thanks now I understand, this also means that the example on page 8 only 
works because of bug 314, and should this bug ever be fixed then the 
example code will break. Therefore it really should include an import of 
std.algorithm explicitly for both clarity and long term reliability.

Bryce.


More information about the Digitalmars-d-learn mailing list