Hi,
Is this a bug in the compiler?
import std.stdio;
import std.typetuple;
class A {
int foo() {
return 0;
}
}
class B : A {
alias A.foo foo;
override int foo() {
return 1;
}
}
template ItemProperty(item, string method) {
static if(__traits(hasMember, item, method)) {
static if(__traits(getProtection, ItemProperty!(item,
method)).stringof[1..$-1] == "public") {
alias ItemProperty = TypeTuple!(ItemProperty!(item,
method));
} else {
alias ItemProperty = TypeTuple!();
}
} else {
alias ItemProperty = TypeTuple!();
}
}
void test()() {
static if(ItemProperty!(B, "foo").length > 1) {
writeln("found");
} else {
writeln("not found");
}
}
void main()
{
test;
}