[Issue 7904] Template instantiation failure depending on compilation order

d-bugmail at puremagic.com d-bugmail at puremagic.com
Fri Nov 29 21:32:10 PST 2013


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


Vladimir Panteleev <thecybershadow at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
         Resolution|INVALID                     |WORKSFORME


--- Comment #3 from Vladimir Panteleev <thecybershadow at gmail.com> 2013-11-30 07:32:05 EET ---
My apologies, this was a bad reduction - an obvious fact I should have noticed.

Here is a working test case for DMD 2.059:
=== a.d ===
import std_algorithm;

string longPath(string s)
{
    s.startsWith("");
    assert(0);
}
=== b.d ===
import std_algorithm;

void handleABC()
{
    replace() ;
}

void dumpScriptTrait()
{
    a;
}
=== std_algorithm.d ===
template binaryFun(alias fun)
{
}

R find(alias pred = "a == b", R, E)(R , E )
if (is(typeof(binaryFun!pred()) ))
{
}

R1 find(R1, R2)(R1 , R2 )
{
    assert(false);
}

bool startsWith()(){}

bool startsWith(alias pred = "a == b", R1, R2)(R1 , R2 )
if (is(typeof(binaryFun!pred)))
{
    return false;
}

char[] replace()()
{
    find("", "");
    assert(0);
}

However, this bug was fixed in 2.064.2.

-- 
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