The implementation is still incomplete. It doesn't call base class dtors.
This unittest should pass:
unittest
{
class A { static bool dead; ~this() { dead = true; } }
class B : A { static bool dead; ~this() { dead = true; } }
{
auto b = scoped!B;
}
assert(B.dead);
assert(A.dead);
}
A less severe problem is that it doesn't delete the object's monitor if one
was allocated.
Please refer to rt_finalize for correct destruction sequence. Essentially,
Scoped dtor should do what rt_finalize does except there is no need to catch
destructor exceptions and I'm not sure about collectHandler. Sean, please
comment?
_______________________________________________
phobos mailing list
[email protected]
http://lists.puremagic.com/mailman/listinfo/phobos