Hi,
by executing the example source code,
following output is returned:
Reference: Child
false
true
At first "childStr" is not found, then it is found?
Is this a bug?
Kind regards
André
-----------------
module app;
import test;
class Child : Parent
{
mixin ComponentTemplate;
@property string childStr(){return "";}
}
void main()
{
auto child = new Child();
child.getParameters();
}
-----------------
module test;
template Params(this MyType)
{
string[] Params()
{
pragma(msg, "Reference: " ~ MyType.stringof);
pragma(msg, is(typeof(__traits(getMember, MyType,
"childStr"))));
pragma(msg, is(typeof(__traits(getMember, MyType,
"childStr"))));
return [];
}
}
mixin template ComponentTemplate()
{
private enum parameters = Params!(typeof(this));
string[] getParameters()
{
return parameters;
}
}
class Parent
{
@property string parentStr(){return "";}
}