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;
