September 30, 2006
Namely, this is the problem where instantiating a template (normally or through a mixin) from a file different from the template's file causes the error message location to be wrong.  That is:

[file1.d]
module file1;
import std.stdio;

void Foo(T)(T val)
{
    static if(!is(T : int))
         Error_Wrong_Type(); // "reporting" an error

    writefln(val);
}


[file2.d]
module file2;
import file1;

..

Foo(4.5); // line 100

Gives, among other errors, the error

file1.d(100): template instance file1.Foo!(double) error instantiating

Notice that it gives the file where the template is declared, but the _line of where it's instantiated_, so you end up with a completely bogus location, making it very difficult to track down where the error actually is.