Inconsistent behavior of __FILE__ within mixin template
Andre Pany
andre at s-e-a-p.de
Wed May 29 08:45:45 UTC 2019
Hi,
I have a module a.d
---------------
struct TestClass
{
string name;
string fileName;
}
TestClass[] testClasses;
mixin template UnitTest()
{
private static string getFileName(string fileName = __FILE__)
{
return fileName;
}
private static this()
{
testClasses ~= TestClass(this.classinfo.name,
getFileName());
}
}
and a module b.d
---------------
import std.stdio;
import a;
class MyTest
{
mixin UnitTest;
this()
{
writeln(getFileName());
}
}
void main()
{
new MyTest();
writeln(testClasses);
}
What I want is to have in the struct array testClasses the file
name of module b
to generate an xml report. But the output of this application is
> b.d
> [TestClass("b.MyTest", "a.d")]
I would have thought __FILE evaluates in both cases to "b.d" as
the code is mixed into
module b. Is this the intended behavior?
Kind regards
André
More information about the Digitalmars-d-learn
mailing list