Digger shows that it stopped working after this PR:
https://github.com/D-Programming-Language/dmd/pull/4457

I could reduce it as far as this:

struct RefCounted(T) {
    struct Impl {
        T _payload;
    }

    Impl* _store;

    ~this() {
        destroy(_store._payload);
    }
}

struct Connection(T) {
    alias Statement = .Statement!T;
}

struct Statement(T) {
    alias Connection = .Connection!T;

    struct Payload {
        Connection con;
    }

    RefCounted!Payload Data;
}

Connection!int x;

Reply via email to