[Issue 6574] Erroneous recursive call in template instantiation

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu Mar 20 01:11:41 PDT 2014


https://d.puremagic.com/issues/show_bug.cgi?id=6574



--- Comment #2 from Andrej Mitrovic <andrej.mitrovich at gmail.com> 2014-03-20 01:11:38 PDT ---
(In reply to comment #1)
> As of v2.065, the provided code compiles and runs without errors.  Taking out
> the 'Foo!();' line causes a compilation warning about a size change but still
> seems to compile and run fine (though there probably is a bug there).

The following runs forever for me with 2.065:

-----
import std.stdio;

enum Method
{
    A,
    B,
}

void Foo(Method method = Method.A)()
{
    write("dispatch, ");
    Foo!method();
}

void Foo(Method method : Method.A)()
{
    writeln("Foo A");
}

void Foo(Method method : Method.B)()
{
    writeln("Foo B");
}

void main()
{
    Foo();            // dispatch, Foo A
}
-----

I can't see any compilation warnings either.

-- 
Configure issuemail: https://d.puremagic.com/issues/userprefs.cgi?tab=email
------- You are receiving this mail because: -------


More information about the Digitalmars-d-bugs mailing list