February 24, 2007
Tested in dmd 1.007, the two toString definitions conflicts when they are in main, not when they are out of the main function.

Do you think that's a bug or not?

import std.stdio;
int main(char[][] args)
{
    enum Foo { A , B };
    enum Foo2 { C , D };

    char[] toString(Foo x)
    {
        return "1";
    }
    char[] toString(Foo2 x)
    {
        return "2";
    }

    Foo s = Foo.A;
    writefln("s is %s, with name %s\n", s, toString(s));

    Foo2 o = Foo2.C;
    writefln("o is %s, with name %s\n", o, toString(o));
    return 0;
}

regards,
renoX