On Wed, 14 Sep 2011 11:42:45 -0400, Christian Kamm
<[email protected]> wrote:
Steven Schveighoffer wrote:
I can't remember the name of it, but D just avoids it by not allowing
multiple overload sets.
In any case, it's not a bug, it's by design.
It's not by design. Multiple overload sets are okay, as long as there
are no
ambiguities, see Dmitry's example.
The problem is that std.string uses selective imports:
public import std.array : join, split
and that selective imports are still broken. (#314)
Test case:
a.d:
void foo() {}
b.d:
void foo(int) {}
c.d:
public import b : foo;
use.d:
import a;
import b; // breaks if you import c instead
void main() { foo(); foo(1); }
OK, my apologies for not understanding the problem properly (or apparently
overload resolution!)
Sorry, I think you are right, it is a bug!
-Steve