www.digitalmars.com         C & C++   DMDScript  

digitalmars.D.learn - Why does std.string use public imports?

reply Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
I'm referring to these two in std.string:
public import std.algorithm : startsWith, endsWith, cmp, count;
public import std.array : join, split;

Because whenever I try to use .count in my code:

import std.stdio;
import std.string;
import std.utf;

void main()
{
    writeln("foo".count);
}

std.utf.count conflicts with std.string's publicly imported std.algorithm.count

Can we avoid public imports in modules? The rise of conflicts in
Phobos is getting slightly annoying.
Jun 30 2011
next sibling parent reply simendsjo <simendsjo gmail.com> writes:
On 01.07.2011 01:14, Andrej Mitrovic wrote:
 I'm referring to these two in std.string:
 public import std.algorithm : startsWith, endsWith, cmp, count;
 public import std.array : join, split;

 Because whenever I try to use .count in my code:

 import std.stdio;
 import std.string;
 import std.utf;

 void main()
 {
      writeln("foo".count);
 }

 std.utf.count conflicts with std.string's publicly imported std.algorithm.count

 Can we avoid public imports in modules? The rise of conflicts in
 Phobos is getting slightly annoying.
I cannot comment on the count issue, but if I was to import only std.string and I was missing basic functionality like the ones imported here, it would have annoyed me :) So it's good if it makes sense I think.
Jun 30 2011
parent Andrej Mitrovic <andrej.mitrovich gmail.com> writes:
That makes sense, I understand. But I hate these conflicts. I've got
`alias std.bla.foo foo` scattered in most of my code due to constant
conflicts. :/
Jun 30 2011
prev sibling parent Jesse Phillips <jessekphillips+D gmail.com> writes:
Andrej Mitrovic Wrote:

 I'm referring to these two in std.string:
 public import std.algorithm : startsWith, endsWith, cmp, count;
 public import std.array : join, split;
I'm not sure why they are public, but selective/named imports have been publicly imported for some time. Bugzilla 3?? I think.
Jun 30 2011