In digging into a problem with Protocols.HTTP.Promise, I came across
an issue with inheritance and destructors.
#ifdef HTTP_PROMISE_DESTRUCT_DEBUG
# define PROMISE_DESTRUCTOR \
protected void _destruct() { \
werror("%O()._destruct()\n", object_program(this)); \
}
#else
# define PROMISE_DESTRUCTOR
#endif
Activating this debug flag actually prevents the parent destructors
from being called. And simply adding ::_destruct() into there doesn't
work either, as that will break for anything that DOESN'T have a
_destruct in its parent.
How can this be solved generically? The symbol ::_destruct simply
can't be looked up (at compile time) if the parent doesn't have one.
ChrisA