[Issue 18915] "Interface method not implemented" if interface reflects on implementing class

d-bugmail at puremagic.com d-bugmail at puremagic.com
Thu May 31 06:31:19 UTC 2018


https://issues.dlang.org/show_bug.cgi?id=18915

--- Comment #2 from Simen Kjaeraas <simen.kjaras at gmail.com> ---
I'd prefer it to work. This is essentially the use case:

interface A
{
    import std.traits;
    static foreach (e; __traits(derivedMembers, B)) {
        static foreach (fn; MemberFunctionsTuple!(B, e)) {
            mixin("@(__traits(getAttributes, fn)) ReturnType!fn
"~e~"(Parameters!fn);");
        }
    }
}

class B : A
{
    void foo() { }
}

That is, we generate an interface based on a type, and derive that type from
said interface. Since derivedMembers doesn't look at base classes and
interfaces, this could possibly be made to work. 

Related forum discussion:
https://forum.dlang.org/post/dgzojfdiwsssflbnkwtk@forum.dlang.org

--


More information about the Digitalmars-d-bugs mailing list