On Thursday, 11 July 2013 at 22:45:47 UTC, JS wrote:
I have some code that needs to determine if a type isFinalFunction or isAbstractFunction but they don't seem to work:

    foreach(k, t; TargetMembers)
    {
        alias TypeTuple!(t.type)[0] type;
        if (isFinalFunction!(t)) { ... }
    }

the if statement never gets executed. I've tried using type instead of t and various other things. I suppose the

the function is defined as

final string foo() { ...}

but TargetMembers is

"tuple(FuncInfo!("foo", pure nothrow @safe string()), FuncInfo!("Value", @property int()), FuncInfo!("Value", @property int(int value)))"

I believe the issue is that isFinalFunction requires an actual function symbol but I'm passing it a string?


How can I get this to work?

much of the code used can be found at http://dpaste.dzfl.pl/209e260b.

I can get the attributes of the function no problem and implement the interface except for final functions, which try to get implemented again... hence I need to prevent reimplementation of final functions but seem to have no way to determine if a function is final.

Reply via email to