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); }

Reply via email to